Avatar billede subro Nybegynder
11. april 2005 - 23:53 Der er 70 kommentarer og
2 løsninger

Søgning i database med flere søgefelter

Hej med jer,
Jeg har en side hvor jeg har 8 "fritekst" søgefelter og 3 specifikke søge felter. Disse søge felter kan man selvfølgelig skrive nogle søge ord ind i og herefter er det meningen at der skal søges i en tabel i en database. Denne tabel har 35 rækker hvor der skal kunne søges på ord der står i disse.
Jeg aner bare ikke lige hvordan jeg skal lave denne søgnings-kode!
Er der nogle der har nogle gode forslag??
Her er min side:

<form>
  <table width="58%" align="center">
    <tr>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" class="hvid" bgcolor="#B6272D" align="center">Fritekst</td>
  </tr>
  <tr>
    <td><input name="fritekst1" type="text" value="" size="27"></td>
    <td><input name="fritekst2" type="text" value="" size="27"></td>
    <td><input name="fritekst3" type="text" value="" size="27"></td>
    <td><input name="fritekst4" type="text" value="" size="27"></td>
  </tr>
  <tr>
    <td><input name="fritekst5" type="text" value="" size="27"></td>
    <td><input name="fritekst6" type="text" value="" size="27"></td>
    <td><input name="fritekst7" type="text" value="" size="27"></td>
    <td><input name="fritekst8" type="text" value="" size="27"></td>
  </tr>
  <tr>
    <td height="10"></td>
  </tr>
  <tr>
    <td class="hvid" bgcolor="#B6272D" align="center">Alder</td>
    <td class="hvid" bgcolor="#B6272D" align="center" colspan="2">Region</td>
    <td class="hvid" bgcolor="#B6272D" align="center">Køn</td>
  </tr>
  <tr>
    <td class="p"><input name="alderfra" type="text" value="" size="4" maxlength="4"> - <input name="aldertil" type="text" value="" size="4" maxlength="4"></td>
    <td colspan="2" align="center"><select name="region" style="width:180px">
                                  <option selected></option>
      <option value="Hele Danmark">Hele Danmark</option>
      <option value="Storkøbenhavn">Storkøbenhavn</option>
      <option value="Nordsjælland">Nordsjælland</option>
      <option value="Vestsjælland">Vestsjælland</option>
      <option value="Sydsjælland">Sydsjælland</option>
      <option value="Bornholm">Bornholm</option>
      <option value="Fyn">Fyn</option>
      <option value="Nordjylland">Nordjylland</option>
      <option value="Nordvestjylland">Nordvestjylland</option>
      <option value="Midtjylland">Midtjylland</option>
      <option value="Østjylland">Østjylland (Århus)</option>
      <option value="Sydvestjylland">Sydvestjylland</option>
      <option value="Sydjylland">Sydjylland</option>
      </select></td>
    <td width="20%" class="p"><label><input type="radio" name="kon" value="Kvinde"> Kvinde<br></label>
                <label><input type="radio" name="kon" value="Mand"> Mand</label></td>
  </tr>
  <tr>
    <td><input type="submit" name="senddata" class="knap" value="Søg" style="cursor:pointer"></td>
  </tr>
</table>
</form>
Avatar billede busschou Praktikant
12. april 2005 - 07:14 #1
Først skal du selvfølgelig lave et og andet tjek på om alt er sat så din sql ikke giver fejl.
Dernæst tror jeg at du skal lave et View først på de tre sidste felter ..noget ala
CREATE VIEW [Alder køn og sted] AS SELECT * FROM din_tabel WHERE region = $_POST['region'] AND kon = $_POST['kon'] AND alder BETWEEN $_POST['alderfra'] AND $_POST['aldertil']
Avatar billede busschou Praktikant
12. april 2005 - 07:17 #2
Det finder alle dem med givent køn, region og alder
Dernæst kan du søge på dine søgeord iblandt de funde ala
SELECT * FROM [Alder køn og sted] WHERE felt1 LIKE '%fritekst1% OR felt1 LIKE '%fritekst2% .. osvosv
Avatar billede subro Nybegynder
12. april 2005 - 09:17 #3
Jeg vil lige tilføje, at alle felter er valgfrie. Dvs. at man må selom hvilke felter man vil udfylde! Man SKAL ikke udfylde alder, region, køn og fritekst1-8!
Men takker busschou, jeg roder med det - men hvis der er andre som har ideer, må de meget gerne poste, også gerne hvis der er nogen der gider at sætte noget kode sammen!?!
Avatar billede subro Nybegynder
14. april 2005 - 11:41 #4
Er der ikke nogen der har nogle ideer til dette??
Jeg har fået lavet lidt, men sidder nu fast!
Er dette rigtigt indtil videre??

<?php
$connection = mysql_connect('HOST','LOGIN','PASS');
mysql_select_db('DATABASE'); 

$fritekst1 = $_POST['fritekst1']; 
if ($fritekst1 != '') {
    $where .= " AND ID LIKE '%$fritekst1%' OR RefNr1 LIKE '%$fritekst1%' OR RefNr2 LIKE '%$fritekst1%' OR RefNr3 LIKE '%$fritekst1%' OR ForNavn LIKE '%$fritekst1%' OR EfterNavn LIKE '%$fritekst1%' OR Adressse LIKE '%$fritekst1%' OR PostNr LIKE '%$fritekst1%' OR Town LIKE '%$fritekst1%' OR HjemmeTlf LIKE '%$fritekst1%' OR ArbejdsTlf LIKE '%$fritekst1%' OR MobilTlf LIKE '%$fritekst1%' OR Email LIKE '%$fritekst1%' OR Interesser LIKE '%$fritekst1%' OR Rygte LIKE '%$fritekst1%' OR Udd LIKE '%$fritekst1%' OR Sprog LIKE '%$fritekst1%' OR ArbejdsErfaring LIKE '%$fritekst1%' OR IT LIKE '%$fritekst1%' OR Referencer LIKE '%$fritekst1%' OR Job LIKE '%$fritekst1%' OR Kommentar LIKE '%$fritekst1%' OR Lon LIKE '%$fritekst1%' OR Dato LIKE '%$fritekst1%'";
}
$fritekst2 = $_POST['fritekst2']; 
if ($fritekst2 != '') {
    $where .= " AND ID LIKE '%$fritekst2%' OR RefNr1 LIKE '%$fritekst2%' OR RefNr2 LIKE '%$fritekst2%' OR RefNr3 LIKE '%$fritekst2%' OR ForNavn LIKE '%$fritekst2%' OR EfterNavn LIKE '%$fritekst2%' OR Adressse LIKE '%$fritekst2%' OR PostNr LIKE '%$fritekst2%' OR Town LIKE '%$fritekst2%' OR HjemmeTlf LIKE '%$fritekst2%' OR ArbejdsTlf LIKE '%$fritekst2%' OR MobilTlf LIKE '%$fritekst2%' OR Email LIKE '%$fritekst2%' OR Interesser LIKE '%$fritekst2%' OR Rygte LIKE '%$fritekst2%' OR Udd LIKE '%$fritekst2%' OR Sprog LIKE '%$fritekst2%' OR ArbejdsErfaring LIKE '%$fritekst2%' OR IT LIKE '%$fritekst2%' OR Referencer LIKE '%$fritekst2%' OR Job LIKE '%$fritekst2%' OR Kommentar LIKE '%$fritekst2%' OR Lon LIKE '%$fritekst2%' OR Dato LIKE '%$fritekst2%'";
}
$fritekst3 = $_POST['fritekst3']; 
if ($fritekst3 != '') {
    $where .= " AND ID LIKE '%$fritekst3%' OR RefNr1 LIKE '%$fritekst3%' OR RefNr2 LIKE '%$fritekst3%' OR RefNr3 LIKE '%$fritekst3%' OR ForNavn LIKE '%$fritekst3%' OR EfterNavn LIKE '%$fritekst3%' OR Adressse LIKE '%$fritekst3%' OR PostNr LIKE '%$fritekst3%' OR Town LIKE '%$fritekst3%' OR HjemmeTlf LIKE '%$fritekst3%' OR ArbejdsTlf LIKE '%$fritekst3%' OR MobilTlf LIKE '%$fritekst3%' OR Email LIKE '%$fritekst3%' OR Interesser LIKE '%$fritekst3%' OR Rygte LIKE '%$fritekst3%' OR Udd LIKE '%$fritekst3%' OR Sprog LIKE '%$fritekst3%' OR ArbejdsErfaring LIKE '%$fritekst3%' OR IT LIKE '%$fritekst3%' OR Referencer LIKE '%$fritekst3%' OR Job LIKE '%$fritekst3%' OR Kommentar LIKE '%$fritekst3%' OR Lon LIKE '%$fritekst3%' OR Dato LIKE '%$fritekst3%'";
}
$fritekst4 = $_POST['fritekst4']; 
if ($fritekst4 != '') {
    $where .= " AND ID LIKE '%$fritekst4%' OR RefNr1 LIKE '%$fritekst4%' OR RefNr2 LIKE '%$fritekst4%' OR RefNr3 LIKE '%$fritekst4%' OR ForNavn LIKE '%$fritekst4%' OR EfterNavn LIKE '%$fritekst4%' OR Adressse LIKE '%$fritekst4%' OR PostNr LIKE '%$fritekst4%' OR Town LIKE '%$fritekst4%' OR HjemmeTlf LIKE '%$fritekst4%' OR ArbejdsTlf LIKE '%$fritekst4%' OR MobilTlf LIKE '%$fritekst4%' OR Email LIKE '%$fritekst4%' OR Interesser LIKE '%$fritekst4%' OR Rygte LIKE '%$fritekst4%' OR Udd LIKE '%$fritekst4%' OR Sprog LIKE '%$fritekst4%' OR ArbejdsErfaring LIKE '%$fritekst4%' OR IT LIKE '%$fritekst4%' OR Referencer LIKE '%$fritekst4%' OR Job LIKE '%$fritekst4%' OR Kommentar LIKE '%$fritekst4%' OR Lon LIKE '%$fritekst4%' OR Dato LIKE '%$fritekst4%'";
}
$fritekst5 = $_POST['fritekst5']; 
if ($fritekst5 != '') {
    $where .= " AND ID LIKE '%$fritekst5%' OR RefNr1 LIKE '%$fritekst5%' OR RefNr2 LIKE '%$fritekst5%' OR RefNr3 LIKE '%$fritekst5%' OR ForNavn LIKE '%$fritekst5%' OR EfterNavn LIKE '%$fritekst5%' OR Adressse LIKE '%$fritekst5%' OR PostNr LIKE '%$fritekst5%' OR Town LIKE '%$fritekst5%' OR HjemmeTlf LIKE '%$fritekst5%' OR ArbejdsTlf LIKE '%$fritekst5%' OR MobilTlf LIKE '%$fritekst5%' OR Email LIKE '%$fritekst5%' OR Interesser LIKE '%$fritekst5%' OR Rygte LIKE '%$fritekst5%' OR Udd LIKE '%$fritekst5%' OR Sprog LIKE '%$fritekst5%' OR ArbejdsErfaring LIKE '%$fritekst5%' OR IT LIKE '%$fritekst5%' OR Referencer LIKE '%$fritekst5%' OR Job LIKE '%$fritekst5%' OR Kommentar LIKE '%$fritekst5%' OR Lon LIKE '%$fritekst5%' OR Dato LIKE '%$fritekst5%'";
}
$fritekst6 = $_POST['fritekst6']; 
if ($fritekst6 != '') {
    $where .= " AND ID LIKE '%$fritekst6%' OR RefNr1 LIKE '%$fritekst6%' OR RefNr2 LIKE '%$fritekst6%' OR RefNr3 LIKE '%$fritekst6%' OR ForNavn LIKE '%$fritekst6%' OR EfterNavn LIKE '%$fritekst6%' OR Adressse LIKE '%$fritekst6%' OR PostNr LIKE '%$fritekst6%' OR Town LIKE '%$fritekst6%' OR HjemmeTlf LIKE '%$fritekst6%' OR ArbejdsTlf LIKE '%$fritekst6%' OR MobilTlf LIKE '%$fritekst6%' OR Email LIKE '%$fritekst6%' OR Interesser LIKE '%$fritekst6%' OR Rygte LIKE '%$fritekst6%' OR Udd LIKE '%$fritekst6%' OR Sprog LIKE '%$fritekst6%' OR ArbejdsErfaring LIKE '%$fritekst6%' OR IT LIKE '%$fritekst6%' OR Referencer LIKE '%$fritekst6%' OR Job LIKE '%$fritekst6%' OR Kommentar LIKE '%$fritekst6%' OR Lon LIKE '%$fritekst6%' OR Dato LIKE '%$fritekst6%'";
}
$fritekst7 = $_POST['fritekst7']; 
if ($fritekst7 != '') {
    $where .= " AND ID LIKE '%$fritekst7%' OR RefNr1 LIKE '%$fritekst7%' OR RefNr2 LIKE '%$fritekst7%' OR RefNr3 LIKE '%$fritekst7%' OR ForNavn LIKE '%$fritekst7%' OR EfterNavn LIKE '%$fritekst7%' OR Adressse LIKE '%$fritekst7%' OR PostNr LIKE '%$fritekst7%' OR Town LIKE '%$fritekst7%' OR HjemmeTlf LIKE '%$fritekst7%' OR ArbejdsTlf LIKE '%$fritekst7%' OR MobilTlf LIKE '%$fritekst7%' OR Email LIKE '%$fritekst7%' OR Interesser LIKE '%$fritekst7%' OR Rygte LIKE '%$fritekst7%' OR Udd LIKE '%$fritekst7%' OR Sprog LIKE '%$fritekst7%' OR ArbejdsErfaring LIKE '%$fritekst7%' OR IT LIKE '%$fritekst7%' OR Referencer LIKE '%$fritekst7%' OR Job LIKE '%$fritekst7%' OR Kommentar LIKE '%$fritekst7%' OR Lon LIKE '%$fritekst7%' OR Dato LIKE '%$fritekst7%'";
}
$fritekst8 = $_POST['fritekst8']; 
if ($fritekst8 != '') {
    $where .= " AND ID LIKE '%$fritekst8%' OR RefNr1 LIKE '%$fritekst8%' OR RefNr2 LIKE '%$fritekst8%' OR RefNr3 LIKE '%$fritekst8%' OR ForNavn LIKE '%$fritekst8%' OR EfterNavn LIKE '%$fritekst8%' OR Adressse LIKE '%$fritekst8%' OR PostNr LIKE '%$fritekst8%' OR Town LIKE '%$fritekst8%' OR HjemmeTlf LIKE '%$fritekst8%' OR ArbejdsTlf LIKE '%$fritekst8%' OR MobilTlf LIKE '%$fritekst8%' OR Email LIKE '%$fritekst8%' OR Interesser LIKE '%$fritekst8%' OR Rygte LIKE '%$fritekst8%' OR Udd LIKE '%$fritekst8%' OR Sprog LIKE '%$fritekst8%' OR ArbejdsErfaring LIKE '%$fritekst8%' OR IT LIKE '%$fritekst8%' OR Referencer LIKE '%$fritekst8%' OR Job LIKE '%$fritekst8%' OR Kommentar LIKE '%$fritekst8%' OR Lon LIKE '%$fritekst8%' OR Dato LIKE '%$fritekst8%'";
}
$alderfra = $_POST['alderfra']; 
if ($alderfra != '') {
    $where .= " AND BirthYear LIKE '%$alderfra%'";
}
$aldertil = $_POST['aldertil']; 
if ($aldertil != '') {
    $where .= " AND BirthYear LIKE '%$aldertil%'";
}
$region = $_POST['region']; 
if ($region != '') {
    $where .= " AND Region1 LIKE '%$region%' OR Region2 LIKE '%$region%' OR Region3 LIKE '%$region%'";
}
$mand = $_POST['mand']; 
if ($mand != '') {
    $where .= " AND Kon LIKE '%$kon%'";
}
$kvinde = $_POST['kvinde']; 
if ($kvinde != '') {
    $where .= " AND Kon LIKE '%$kon%'";
}
?>
Avatar billede busschou Praktikant
14. april 2005 - 12:00 #5
Hmm du får jo et problem med at din $where vil starte med AND
Derudover skal du måske tænke over præcedens regler for AND og OR ...jeg ville nok selv sætte paranteser for at være sikker på de blev tolket korrekt
Avatar billede busschou Praktikant
14. april 2005 - 12:05 #6
Jeg tror jeg ville foreslå dig for overskuelighedensskyld at lave en funktion til opbygningen af sql...det mindsker vist chancen for slåfejl
Avatar billede busschou Praktikant
14. april 2005 - 12:09 #7
Du kunne lave en funktion som denne...og så kalde den med hver af dine POST variable som er sat...så er der kun et sted at rette hvis det er
function createSQL($tekst){
    $sql = " AND ID LIKE '%$tekst%' OR RefNr1 LIKE '%$tekst%' OR RefNr2 LIKE '%$tekst%' OR RefNr3 LIKE '%$tekst%' OR ForNavn LIKE '%$tekst%' OR EfterNavn LIKE '%$tekst%' OR Adressse LIKE '%$tekst%' OR PostNr LIKE '%$tekst%' OR Town LIKE '%$tekst%' OR HjemmeTlf LIKE '%$tekst%' OR ArbejdsTlf LIKE '%$tekst%' OR MobilTlf LIKE '%$tekst%' OR Email LIKE '%$tekst%' OR Interesser LIKE '%$tekst%' OR Rygte LIKE '%$tekst%' OR Udd LIKE '%$tekst%' OR Sprog LIKE '%$tekst%' OR ArbejdsErfaring LIKE '%$tekst%' OR IT LIKE '%$tekst%' OR Referencer LIKE '%$tekst%' OR Job LIKE '%$tekst%' OR Kommentar LIKE '%$tekst%' OR Lon LIKE '%$tekst%' OR Dato LIKE '%$tekst%'";
    return $sql;
}
Avatar billede busschou Praktikant
14. april 2005 - 12:17 #8
Hvis du fjerner dit AND fra den function jeg foreslog så kan du bygge din sql op noget ala det her:
----
$sql = "Select * From din_tabel Where ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if $tjek == "nej"{
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}
----
Avatar billede busschou Praktikant
14. april 2005 - 12:18 #9
Så tjekker den samtidig om der er sat noget ind...hvis der er det skal den benytte AND
Hvis ikke der er sat noget ind så er det det første i sql sætningen og derfor skriver den ikke AND
Avatar billede subro Nybegynder
14. april 2005 - 12:29 #10
Arhhh OK!
Hvordan skriver jeg så resultatet ud?
Det skal jo være sådan at der kommer en linie for hvert søgeresultat, f.eks.:
Søgeresultater:
ID  FORNAVN    EFTERNAVN
1    sune      broström      vis resultat
2    arne      andersen      vis resultat

Hvis man trykker "vis resultat" kommer der en side hvor alle søgeresultaterne bliver udskrevet for den valgte række.
Avatar billede busschou Praktikant
14. april 2005 - 12:42 #11
Jamen du laver din sql og udfører den ved
$result = mysql_query($sql) or die(mysql_error);
Dernæst laver du en tabel og kører en løkke ala
-------
echo "<table>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[Fornavn]</td>";
echo "<td>$row[Efternavn]</td></tr>";
}
echo "</table>";
Avatar billede busschou Praktikant
14. april 2005 - 12:43 #12
jeg er ikke helt med på hvad du mener med søge resultat
Kommer fornavn og efternavn fra den søgning vi lige har lavet?
Eller hvordan?
Avatar billede subro Nybegynder
14. april 2005 - 12:53 #13
Ja altså... hæ hæ! (Det er måske lidt uforståligt!)
Man taster de ting ind i søgefelterne som man gerne vil finde i db'en. Herefter skal de "matches" udskrives, altså så man kan se hvor mange søge resultater der er, og så man kan vælge et af de søge resultater!
Når man vælger et af søge resultaterne kommer man til en ny side hvor man kan se alt det data der fandtes i den valgt række (eller valgte søge resultat).
Håber det var lidt mindre kryptisk!?!
Hvis det ikke er for meget at forlange, kan du så ikke skrive de to koder sammen?? Jeg er temmelig newbee til det hersens php noget!
Avatar billede busschou Praktikant
14. april 2005 - 12:59 #14
Skal lige være med...ligner en dating site eller noget
Den søgning vi lige har lavet den finder personer?
Derefter vil du vise de personer som blev fundet?
Til sidst vil du kunne klikke på en af de personer og vise oplysninger om dem?
Avatar billede subro Nybegynder
14. april 2005 - 13:04 #15
Det er nemlig rigtigt! Hæ hæ.. men det er ikke et dating site. Det er et projekt jeg er i gang med i forbindelse med eksamens projekt i min skole. Det er noget CV halløj, hvor brugeren af CV-admin delen skal kunne søge på de CV'er der er kommet ind! Der skal kunne laves fritekst søgning på alt hvad der ligger i CV'et, på nær region, køn og alder som søger direkte på de felter i db'en som hedder "Region", "Kon" og "BirthYear".
Avatar billede busschou Praktikant
14. april 2005 - 13:12 #16
Ok men så vil jeg foreslå følgende
Du har din søgning og resultaterne af den laver du i en tabel ala det jeg foreslog oven over.
Der hvor du skal skrive vis resultat laver du så
echo "<td><a href=\"enside.php?id=$row[ID]\"</a></td>";
Du kan evt lave target="_blank" hvis du vil åbne det i et nyt vindue
På den side laver du så en $id = $_GET['id']
Dernæst kan du så lave en sql ala
SQL = "Select * From din_tabel Where id="$id
Og så derefter spytte de resultater ud
Avatar billede subro Nybegynder
14. april 2005 - 13:17 #17
Okay.. Det lyder som en go' idé!
Men kan du skrive den kode sammen som udføre søgningen? Du behøver selvfølgelig ikke skrive ALLE fritekst søgningerne ind, det kan jeg selv gøre. Men bare for at jeg kan se hvordan koden ser ud når den bliver samlet!
Kan du det???
Det ville være rigtigt flinkt af dig ;-)
Avatar billede busschou Praktikant
14. april 2005 - 13:26 #18
jamen du har jo din form helt fra start
du har min funktion fra 12:09:50 hvor du bare skal fjerne det første AND
og du har starten på koden som laver sql søgningen 12:17:37
12:42:28 har du også sammen med 13:12:00 kode til at lave en tabel over navnene :o)
Så det burde være til at klare
Jeg har ikke selv mulighed for at teste noget..ville gerne..men på en måde er det også lidt "learning by doing" .. :o)
Avatar billede subro Nybegynder
14. april 2005 - 13:41 #19
Argghhhh....
Det værste er at du har ret!
Hæ hæ... Jeg kigger lige på det, og vender tilbage hvis det driller... det plejer det at gøre!!!
Men tak for hjælpen indtil videre busschou! Du har været til stor hjælp!! Skriver lige hvis du skal svare = hvis jeg har fået løst problemet!!! Ellers hører du fra mig ;oD
Takker!!
Avatar billede busschou Praktikant
14. april 2005 - 13:46 #20
Hehe sender hermed et svar... så kan du jo altid vurdere det :o)
Hvis du skriver senere så er jeg desværre ikke tilstede i aften..
Måske en anden så kan hjælpe dig..ellers er jeg back i morgen :o)
Avatar billede subro Nybegynder
14. april 2005 - 14:06 #21
Hmmm.... Der er fejl.
Jeg kan ikke lige gennemskue hvad den skyldes:

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if $tjek == "nej"{  //DER SKULLE VÆRE EN FEJL I DENNE LINIE!?!
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}
Avatar billede busschou Praktikant
14. april 2005 - 14:10 #22
der mangler bare paranteser omkring udtrykket ligesom i linjen ovenover
if ($tjek == "nej"){
Avatar billede subro Nybegynder
14. april 2005 - 14:15 #23
Hæ hæ.. det bliver ved!

echo "<table>";
while ($row = mysql_fetch_array($result)) { //DER ER NOGET GALT HER - MEN HVAD?
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[Fornavn]</td>";
echo "<td>$row[Efternavn]</td></tr>";
echo "<td><a href=\"enside.php?id=$row[ID]\"</a></td>";
}
echo "</table>";
Avatar billede busschou Praktikant
14. april 2005 - 14:16 #24
det er nok fordi du ikke har sat din $result ovenover
Du skal jo udføre din sql query på denne måde
$result = mysql_query($sql) or die(mysql_error);
Avatar billede subro Nybegynder
14. april 2005 - 14:22 #25
Jeg er fatsvag!
Skal det stå sådan?:

$result = mysql_query($sql) or die(mysql_error);
echo "<table>";
while ($row = mysql_fetch_array($result)) { //DER ER NOGET GALT HER - MEN HVAD?
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[Fornavn]</td>";
echo "<td>$row[Efternavn]</td></tr>";
echo "<td><a href=\"enside.php?id=$row[ID]\"</a></td>";
}
echo "</table>";
Avatar billede busschou Praktikant
14. april 2005 - 14:24 #26
ja sådan vil jeg mene
Du virker ret ny..hvad har du læst om php?...for så vil jeg da måske anbefale et par sites omkring det? eller er det mest database der er problem?
Avatar billede subro Nybegynder
14. april 2005 - 14:29 #27
Jeg har skrevet det sådan, men så hopper den direkte til error!
Ja, jeg er temmlig ny til php, men har sådan noglelunde styr på det (bop-bop) :-)
Det er mest det her søge modul der er problemet, de andre ting har jeg styr på, det er bare det søgning der er så f..... irreterende!
Avatar billede busschou Praktikant
14. april 2005 - 14:31 #28
ok ...
or die(mysql_error) -- bør du altid have efter enhver database tilgang for så vil den fortælle dig hvad som er galt
Hvis ikke du har det så giver den dig en fejl..men en ubrugelig fejlmedelelse
Så du må lige poste din fejlmeddelelse for så er der nok noget galt med sql´en
Avatar billede subro Nybegynder
14. april 2005 - 14:34 #29
Den skriver bare mysql_error, det er det eneste der står!
Hmmm.....
Avatar billede busschou Praktikant
14. april 2005 - 14:43 #30
min fejl sorry ...så alle kan lære hele tiden .. lol
$result = mysql_query($sql) or die(mysql_error());
Avatar billede subro Nybegynder
14. april 2005 - 14:53 #31
Det er bare i orden :-)
OK, det hjalp lidt! Men nu opstår denne fejl:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Avatar billede busschou Praktikant
14. april 2005 - 14:57 #32
ok så prøver du at udskrive din sql
Oven over din linje med
$result = mysql_query($sql) or die(mysql_error());
laver du en linje
echo "$result";
For så kan vi se hvad det er den prøver at gøre
Det er muligt at der er nogen af felterne som måske er tal i databasen men du sammenligner med tekst..osv..
Avatar billede subro Nybegynder
14. april 2005 - 15:04 #33
Det ændre ingenting!
Der står bare den samme fejl!
Det skal siges at denne fejl kommer når siden loades, altså inden man skriver noget i nogle af søge felterne!
Avatar billede busschou Praktikant
14. april 2005 - 15:10 #34
ok din submit knap har du kaldt for "senddata" kan jeg se
Det er klart at du kan ikke bede den om at søge i databasen på ingen ting
Din form skal have et name, action, og type
Action kan du evt sætte til den side du er på
Type sætter du til post
Alt det kode du nu har under formen med functionen og opbygning af $sql og $result osv
Det omkranser du af en if sætning på følgende måde
if (isset($_POST['senddata'])){
  //al den kode som skal udføres hvis formen er sendt
}
Så bliver koden kun udført hvis der er trykket på submit
Avatar billede busschou Praktikant
14. april 2005 - 15:11 #35
en anden mulighed er
if ($_POST['senddata'] != ""){
  //al den kode som skal udføres hvis formen er sendt
}
Avatar billede subro Nybegynder
14. april 2005 - 15:35 #36
Nu kører det!!!!
Jeg havde sgu' ikke lige set det med min form!Havde dog også ændret den i mellem tiden, men det sidste hjalp!
Det eneste der er at der ikke kommer noget link efter "EfterNavn"?
Hmmm...
Avatar billede busschou Praktikant
14. april 2005 - 15:37 #37
ser den sådan ud ?
----------
echo "<table>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[Fornavn]</td>";
echo "<td>$row[Efternavn]</td>";
echo "<td><a href=\"enside.php?id=$row[ID]\"</a></td></tr>";
}
echo "</table>";
Avatar billede busschou Praktikant
14. april 2005 - 15:38 #38
hovsa
----------
echo "<table>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[Fornavn]</td>";
echo "<td>$row[Efternavn]</td>";
echo "<td><a href=\"enside.php?id=$row[ID]\">Vis Bruger</a></td></tr>";
}
echo "</table>";
Avatar billede subro Nybegynder
14. april 2005 - 15:54 #39
Det hjalp en hel del!! KANON!
Jeg sidder og roder med at smide det ind i html tables, men der bliver kkun udskrevet linket når jeg gør det på denne måde, nogle forslag?:
<?php
echo "$result";
$result = mysql_query($sql) or die(mysql_error());
?>
<table>
  <tr>
    <td class="p"><?php echo $row["ID"]; ?></td>
    <td class="p"><?php echo $row["ForNavn"]; ?> </td>
    <td class="p"><?php echo $row["EfterNavn"]; ?></td>
    <td><a class="red" href="found_cv.php?id=<?php $row['ID']; ?>">Vis CV</a></td>
  </tr>
</table>
<?php
}
?>
Avatar billede busschou Praktikant
14. april 2005 - 15:58 #40
Her du fjernet din løkke eller laver du nu en tabel for hver enkelt?
Er ikke helt med :o)
Avatar billede subro Nybegynder
14. april 2005 - 16:02 #41
Jeg ville lave løkken uden om html tabellen!
Jeg løste det på denne måde, men løkken virker ikke (altså hvis man skriver søgeord ind i flere søgefelter!)
<?php
echo "$result";
$result = mysql_query($sql) or die(mysql_error());
?>
<table align="center">
  <tr><?php while ($row = mysql_fetch_array($result)) {?>
    <td class="p"><?php echo $row["ID"]; ?></td>
    <td class="p"><?php echo $row["ForNavn"]; ?> </td>
    <td class="p"><?php echo $row["EfterNavn"]; ?></td>
    <td><a class="red" href="found_cv.php?id=<?php $row['ID']; ?>">Vis CV</a></td>
  </tr><?php }?>
</table>
<?php
}
?>
Avatar billede busschou Praktikant
14. april 2005 - 16:11 #42
ok det forstår jeg ikke
Fik du rettet det så du sår lavet din sql ud fra samtlige felter? eller tog du kun det to jeg lavede eksempel på?
JEg må desværre smutte for idag
Jeg håber du kan finde ud af lidt
Ellers send gerne et link
Avatar billede subro Nybegynder
14. april 2005 - 16:19 #43
Jeg har lavet det sådan at den skal søge på flere felter, men det virker ikke! Det virker kun hvis man søger på et felt!
Vend tilbage når du kan/ har tid!
1000 tak for hjælpen indtil videre!
Avatar billede busschou Praktikant
17. april 2005 - 09:57 #44
Hey hvordan går det med koden?
Avatar billede subro Nybegynder
17. april 2005 - 12:45 #45
Hey Busschou! Det går fremad, men jeg har stadig problemer med at søge i flere søgefelter! Den kan ku søge i ét søgefelt som det er nu, så der er nogle problemer med:
$sql = "Select * From din_tabel Where ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if $tjek == "nej"{
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}
Avatar billede busschou Praktikant
17. april 2005 - 12:47 #46
prøv poste hele din kode
Avatar billede subro Nybegynder
17. april 2005 - 12:54 #47
OK, here goes:

<form name="sogform" method="POST" action="seek_cv.php">
  <table width="58%" align="center">
    <tr>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" align="center" bgcolor="#B6272D" class="hvid">Fritekst</td>
    <td width="25%" class="hvid" bgcolor="#B6272D" align="center">Fritekst</td>
  </tr>
  <tr>
    <td><input name="fritekst1" type="text" value="" size="27"></td>
    <td><input name="fritekst2" type="text" value="" size="27"></td>
    <td><input name="fritekst3" type="text" value="" size="27"></td>
    <td><input name="fritekst4" type="text" value="" size="27"></td>
  </tr>
  <tr>
    <td><input name="fritekst5" type="text" value="" size="27"></td>
    <td><input name="fritekst6" type="text" value="" size="27"></td>
    <td><input name="fritekst7" type="text" value="" size="27"></td>
    <td><input name="fritekst8" type="text" value="" size="27"></td>
  </tr>
  <tr>
    <td height="10"></td>
  </tr>
  <tr>
    <td class="hvid" bgcolor="#B6272D" align="center">Alder</td>
    <td class="hvid" bgcolor="#B6272D" align="center" colspan="2">Region</td>
    <td class="hvid" bgcolor="#B6272D" align="center">Køn</td>
  </tr>
  <tr>
    <td class="p"><input name="alderfra" type="text" value="" size="4" maxlength="4"> - <input name="aldertil" type="text" value="" size="4" maxlength="4"></td>
    <td colspan="2" align="center"><select name="region" style="width:180px">
                                  <option selected></option>
                                  <option value="Storkøbenhavn">Storkøbenhavn</option>
                                  <option value="Nordsjælland">Nordsjælland</option>
                                  <option value="Vestsjælland">Vestsjælland</option>
                                  <option value="Sydsjælland">Sydsjælland</option>
                                  <option value="Bornholm">Bornholm</option>
                                  <option value="Fyn">Fyn</option>
                                  <option value="Nordjylland">Nordjylland</option>
                                  <option value="Nordvestjylland">Nordvestjylland</option>
                                  <option value="Midtjylland">Midtjylland</option>
                                  <option value="Østjylland">Østjylland (Århus)</option>
                                  <option value="Sydvestjylland">Sydvestjylland</option>
                                  <option value="Sydjylland">Sydjylland</option>
                                  </select></td>
    <td width="20%" class="p"><label><input type="radio" name="kon" value="Kvinde"> Kvinde<br></label>
                              <label><input type="radio" name="kon" value="Mand"> Mand</label></td>
  </tr>
  <tr>
    <td><input type="submit" name="senddata" class="knap" value="Søg" style="cursor:pointer"></td>
  </tr>
  <tr>
    <td height="10"></td>
  </tr>
</table>
</form>
<?php
if (isset($_POST['senddata'])){

$connection = mysql_connect('80.80.7.104','insource','zP96q97');
mysql_select_db('insource');

function createSQL($tekst){
    $sql = " ID LIKE '%$tekst%' OR RefNr1 LIKE '%$tekst%' OR RefNr2 LIKE '%$tekst%' OR RefNr3 LIKE '%$tekst%' OR ForNavn LIKE '%$tekst%' OR EfterNavn LIKE '%$tekst%' OR Adresse LIKE '%$tekst%' OR PostNr LIKE '%$tekst%' OR Town LIKE '%$tekst%' OR HjemmeTlf LIKE '%$tekst%' OR ArbejdsTlf LIKE '%$tekst%' OR MobilTlf LIKE '%$tekst%' OR Email LIKE '%$tekst%' OR Interesser LIKE '%$tekst%' OR Rygte LIKE '%$tekst%' OR Udd LIKE '%$tekst%' OR Sprog LIKE '%$tekst%' OR ArbejdsErfaring LIKE '%$tekst%' OR IT LIKE '%$tekst%' OR Referencer LIKE '%$tekst%' OR Job1 LIKE '%$tekst%' OR Kommentar LIKE '%$tekst%' OR Lon LIKE '%$tekst%' OR Dato LIKE '%$tekst%'";
    return $sql;
}

$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    $sql .= "(".createSQL($fritekst2).")";
    $tjek = "ja";
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    $sql .= "(".createSQL($fritekst3).")";
    $tjek = "ja";
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    $sql .= "(".createSQL($fritekst4).")";
    $tjek = "ja";
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    $sql .= "(".createSQL($fritekst5).")";
    $tjek = "ja";
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    $sql .= "(".createSQL($fritekst6).")";
    $tjek = "ja";
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    $sql .= "(".createSQL($fritekst7).")";
    $tjek = "ja";
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}

$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    $sql .= "(".createSQL($fritekst8).")";
    $tjek = "ja";
}

$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}
echo "$result";
$result = mysql_query($sql) or die(mysql_error());
echo "<table>";
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>$row[ID]</td>";
echo "<td>$row[ForNavn]</td>";
echo "<td>$row[EfterNavn]</td>";
echo "<td><a href=\"found_cv.php?id=$row[ID]\">Vis Bruger</a></td></tr>";
}
echo "</table>";
}
?>
Avatar billede busschou Praktikant
17. april 2005 - 13:01 #48
ok den nulstiller jo tjek variablen..prøv sådan her:
---------
$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}

$alderfra = $_POST['alderfra'];
if ($alderfra != '') {
    $sql .= " AND (BirthYear LIKE '%$alderfra%')";
}
$aldertil = $_POST['aldertil'];
if ($aldertil != '') {
    $sql .= " AND (BirthYear LIKE '%$aldertil%')";
}
$region = $_POST['region'];
if ($region != '') {
    $sql .= " AND (Region1 LIKE '%$region%' OR Region2 LIKE '%$region%' OR Region3 LIKE '%$region%')";
}
$mand = $_POST['mand'];
if ($mand != '') {
    $sql .= " AND (Kon LIKE '%$kon%')";
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
    $sql .= " AND (Kon LIKE '%$kon%')";
}

echo "$sql";
$result = mysql_query($sql) or die(mysql_error());


$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}
Avatar billede busschou Praktikant
17. april 2005 - 13:03 #49
så kommer alder,region mm også på
Der er lige et par ting til de felter
Hvad taster man i alderfra og aldertil feltet? taster man fx 20-22?
For i databasen hedder det BirthYear og hvis det er et årstal så skal den lige laves om!
Regionen bør være god nok
Men kønnet hvordan står det i databasen? For hvis feltet blot har værdien "Kvinde" eller "Mand" så skal der jo ikke laves en like men et = :o)
Avatar billede subro Nybegynder
17. april 2005 - 13:07 #50
Ja, det er jo lige det!!! Man skal skrive f.eks.: 1981 - 1979 og så skal den tage de rows hvor der er 1981 1980 1979. Køn står netop som mand eller kvinde :-) så jeg skal nok lige ændre "like" til "="!
Avatar billede busschou Praktikant
17. april 2005 - 13:17 #51
prøv denne her så:
------
$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}

$alderfra = $_POST['alderfra']; ¨
$aldertil = $_POST['aldertil'];
if ($alderfra != '') {
  if ($aldertil != '') {
    $sql .= " AND (BirthYear BETWEEN $alderfra AND $aldertil)";
  }else{
    $sql .= " AND (BirthYear >= $alderfra)";
  }
}else{
  if ($aldertil != '') {
    $sql .= " AND (BirthYear <= $aldertil)";
  }
}

$region = $_POST['region'];
if ($region != '') {
    $sql .= " AND (Region1 = '$region' OR Region2 = '$region' OR Region3 = '$region')";
}

$mand = $_POST['mand'];
if ($mand != '') {
    $sql .= " AND (Kon = '$kon')";
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
    $sql .= " AND (Kon = '$kon')";
}

echo "$sql";
$result = mysql_query($sql) or die(mysql_error());


$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}
Avatar billede busschou Praktikant
17. april 2005 - 13:18 #52
hov der var en copy paste fejl
Avatar billede busschou Praktikant
17. april 2005 - 13:18 #53
sådan her
---
$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst1).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst1).")";
    }
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}


$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}

$alderfra = $_POST['alderfra']; ¨
$aldertil = $_POST['aldertil'];
if ($alderfra != '') {
  if ($aldertil != '') {
    $sql .= " AND (BirthYear BETWEEN $alderfra AND $aldertil)";
  }else{
    $sql .= " AND (BirthYear >= $alderfra)";
  }
}else{
  if ($aldertil != '') {
    $sql .= " AND (BirthYear <= $aldertil)";
  }
}

$region = $_POST['region'];
if ($region != '') {
    $sql .= " AND (Region1 = '$region' OR Region2 = '$region' OR Region3 = '$region')";
}

$mand = $_POST['mand'];
if ($mand != '') {
    $sql .= " AND (Kon = '$kon')";
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
    $sql .= " AND (Kon = '$kon')";
}

echo "$sql";
$result = mysql_query($sql) or die(mysql_error());
Avatar billede busschou Praktikant
17. april 2005 - 13:20 #54
hvis alderfra er udfyldt alene så vælger den alle som er større
tilsvarende aldertil vælger alle som er mindre
hvis begge er udfyldt vælger den dem imellem

Der er lige en overflødig ting så du får lige en til her om to sek
:o)
Avatar billede busschou Praktikant
17. april 2005 - 13:20 #55
$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}


$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}

$alderfra = $_POST['alderfra']; ¨
$aldertil = $_POST['aldertil'];
if ($alderfra != '') {
  if ($aldertil != '') {
    $sql .= " AND (BirthYear BETWEEN $alderfra AND $aldertil)";
  }else{
    $sql .= " AND (BirthYear >= $alderfra)";
  }
}else{
  if ($aldertil != '') {
    $sql .= " AND (BirthYear <= $aldertil)";
  }
}

$region = $_POST['region'];
if ($region != '') {
    $sql .= " AND (Region1 = '$region' OR Region2 = '$region' OR Region3 = '$region')";
}

$mand = $_POST['mand'];
if ($mand != '') {
    $sql .= " AND (Kon = '$kon')";
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
    $sql .= " AND (Kon = '$kon')";
}

echo "$sql";
$result = mysql_query($sql) or die(mysql_error());
Avatar billede subro Nybegynder
17. april 2005 - 13:29 #56
Hmmm...
Hvis jeg skriver "sune" i søgefelt 1 og "benny" i søgefelt 2 (disse navne ligger i db'en!) kommer følgende fejl:
SELECT * FROM Kandidater WHERE ( ID LIKE '%sune%' OR RefNr1 LIKE '%sune%' OR RefNr2 LIKE '%sune%' OR RefNr3 LIKE '%sune%' OR ForNavn LIKE '%sune%' OR EfterNavn LIKE '%sune%' OR Adresse LIKE '%sune%' OR PostNr LIKE '%sune%' OR Town LIKE '%sune%' OR HjemmeTlf LIKE '%sune%' OR ArbejdsTlf LIKE '%sune%' OR MobilTlf LIKE '%sune%' OR Email LIKE '%sune%' OR Interesser LIKE '%sune%' OR Rygte LIKE '%sune%' OR Udd LIKE '%sune%' OR Sprog LIKE '%sune%' OR ArbejdsErfaring LIKE '%sune%' OR IT LIKE '%sune%' OR Referencer LIKE '%sune%' OR Job1 LIKE '%sune%' OR Kommentar LIKE '%sune%' OR Lon LIKE '%sune%' OR Dato LIKE '%sune%')AND ( ID LIKE '%benny%' OR RefNr1 LIKE '%benny%' OR RefNr2 LIKE '%benny%' OR RefNr3 LIKE '%benny%' OR ForNavn LIKE '%benny%' OR EfterNavn LIKE '%benny%' OR Adresse LIKE '%benny%' OR PostNr LIKE '%benny%' OR Town LIKE '%benny%' OR HjemmeTlf LIKE '%benny%' OR ArbejdsTlf LIKE '%benny%' OR MobilTlf LIKE '%benny%' OR Email LIKE '%benny%' OR Interesser LIKE '%benny%' OR Rygte LIKE '%benny%' OR Udd LIKE '%benny%' OR Sprog LIKE '%benny%' OR ArbejdsErfaring LIKE '%benny%' OR IT LIKE '%benny%' OR Referencer LIKE '%benny%' OR Job1 LIKE '%benny%' OR Kommentar LIKE '%benny%' OR Lon LIKE '%benny%' OR Dato LIKE '%benny%')Resource id #5

Hvis jeg udfylder alder, kommer følgende fejl:
SELECT * FROM Kandidater WHERE AND (BirthYear BETWEEN 1981 AND 1980)You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (BirthYear BETWEEN 1981 AND 1980)' at line 1

Og for region:
SELECT * FROM Kandidater WHERE AND (Region1 = 'Østjylland' OR Region2 = 'Østjylland' OR Region3 = 'Østjylland')You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (Region1 = 'Østjylland' OR Region2 = 'Østjylland' OR Region

og for køn:
SELECT * FROM Kandidater WHERE You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Avatar billede busschou Praktikant
17. april 2005 - 13:45 #57
de sidste tre er fordi jeg glemte at tjekke tjek variablen...de bør være løst her:
$sql = "SELECT * FROM Kandidater WHERE ";
$tjek = "nej";

$fritekst1 = $_POST['fritekst1'];
if ($fritekst1 != '') {
    $sql .= "(".createSQL($fritekst1).")";
    $tjek = "ja";
}

$fritekst2 = $_POST['fritekst2'];
if ($fritekst2 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst2).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst2).")";
    }
}

$fritekst3 = $_POST['fritekst3'];
if ($fritekst3 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst3).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst3).")";
    }
}

$fritekst4 = $_POST['fritekst4'];
if ($fritekst4 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst4).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst4).")";
    }
}

$fritekst5 = $_POST['fritekst5'];
if ($fritekst5 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst5).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst5).")";
    }
}

$fritekst6 = $_POST['fritekst6'];
if ($fritekst6 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst6).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst6).")";
    }
}

$fritekst7 = $_POST['fritekst7'];
if ($fritekst7 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst7).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst7).")";
    }
}


$fritekst8 = $_POST['fritekst8'];
if ($fritekst8 != '') {
    if ($tjek == "nej") {
        $sql .= "(".createSQL($fritekst8).")";
        $tjek = "ja";
    }else{
        $sql .= "AND (".createSQL($fritekst8).")";
    }
}

$alderfra = $_POST['alderfra']; ¨
$aldertil = $_POST['aldertil'];
if ($alderfra != '') {
  if ($tjek == "nej") {
    if ($aldertil != '') {
      $sql .= " (BirthYear BETWEEN $alderfra AND $aldertil)";
    }else{
      $sql .= " (BirthYear >= $alderfra)";
    }
    $tjek = "ja";
  }else{
    if ($aldertil != '') {
      $sql .= " AND (BirthYear BETWEEN $alderfra AND $aldertil)";
    }else{
      $sql .= " AND (BirthYear >= $alderfra)";
    }
  }
}else{
  if ($tjek == "nej") {
    if ($aldertil != '') {
      $sql .= " (BirthYear <= $aldertil)";
      $tjek ="ja";
    }
  }else{
    if ($aldertil != '') {
      $sql .= " (BirthYear <= $aldertil)"; 
    }
  }
}

$region = $_POST['region'];
if ($region != '') {
  if ($tjek == "nej") {
    $sql .= " (Region1 = '$region' OR Region2 = '$region' OR Region3 = '$region')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Region1 = '$region' OR Region2 = '$region' OR Region3 = '$region')";
  }
}

$mand = $_POST['mand'];
if ($mand != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = '$kon')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = '$kon')";
  }
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = '$kon')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = '$kon')";
  }
}

echo "$sql";
$result = mysql_query($sql) or die(mysql_error());
Avatar billede subro Nybegynder
17. april 2005 - 13:56 #58
Det hjalp lidt! Men når man laver 2 fritekst søgninger, er det kun søgningen i det sidste søgfelt der bliver vist!
Endvidere viker Køn stadig ikke!
----------
Hmm... når man laver én fritekst søgning og også søger på f.eks. region, kan den godt tage begge søgninger med!
Avatar billede busschou Praktikant
17. april 2005 - 14:02 #59
ahhhh doh
Det er fordi vi bruger AND og ikke OR
Så hvis du søger på sune og benny så leder den der hvor det både er sune og benny
Jeg tror faktisk du kan rette alle AND til OR..prøv ad og lav en test og evt poste udskriften
Avatar billede busschou Praktikant
17. april 2005 - 14:12 #60
kønnene er rettet her:
$mand = $_POST['mand'];
if ($mand != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = '$mand')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = '$mand')";
  }
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = '$kvinde')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = '$kvinde')";
  }
}
Avatar billede busschou Praktikant
17. april 2005 - 14:12 #61
VRØVL
Avatar billede busschou Praktikant
17. april 2005 - 14:13 #62
nogen gange slår hjernen fra :o)
kønnene er rettet her:
$mand = $_POST['mand'];
if ($mand != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = 'Mand')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = 'Mand')";
  }
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = 'Kvinde')";
    $tjek = "ja";
  }else{
    $sql .= " AND (Kon = 'Kvinde')";
  }
}
Avatar billede subro Nybegynder
17. april 2005 - 14:17 #63
Det hjalp!!! Nu kan der søges på flere fritekstsøgninger! Men køn virker stadig ikke! Skal AND rettes til OR her også??
Det med hjernen; bare rolig, sådan føler jeg det hele tiden :o) desuden er det jo søndag, dér skalman være lidt slatten i hovedet ;oD
Avatar billede busschou Praktikant
17. april 2005 - 14:20 #64
ja klart det er mig som er en copy paste spade ;o)
Alle AND skal være OR
Der hvor jeg nu har skrevet TEKST der skal du skrive det som står i din database i feltet Kon - jeg troede der enten stod Mand eller Kvinde ?
$mand = $_POST['mand'];
if ($mand != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = 'TEKST')";
    $tjek = "ja";
  }else{
    $sql .= " OR (Kon = 'TEKST')";
  }
}
$kvinde = $_POST['kvinde'];
if ($kvinde != '') {
  if ($tjek == "nej") {
    $sql .= " (Kon = 'TEKST')";
    $tjek = "ja";
  }else{
    $sql .= " OR (Kon = 'TEKST')";
  }
}
Avatar billede subro Nybegynder
17. april 2005 - 14:26 #65
I databasen står der enten mand eller kvinde, så det du skrev først var vel ok (på nær lige det med AND)!?!
En ande ting; hvis jeg nu skriver "sune" i fritekstsøgningen og vælger 1980 i alder er det meningen at den KUN skal tage CV'er som har noget tekst med "sune" med en alder på 1980. Nu tager den CV'er med både "sune" og "1980."
Avatar billede busschou Praktikant
17. april 2005 - 14:30 #66
ok godt så
Så skal du finde ud af hvilke søgninger som hænger sammen så at sige
Hvis alle er AND så afhænger alle af alle
HVis alle er OR så afhænger ingen af nogen
Så hvis du vil have at når du skriver "sune" og alderfra "1980" kun skal finde dem som hedder noget med sune og er ældre end 1980 så er det jo en anden sag end finde dem som enten hedder sune eller er fra 1980 og opad :o)
Dvs så skal du rette OR til AND der hvor den ser på alderfra og aldertil
Men du skal gøre op med dig selv om det også skal rettes andre steder
Avatar billede busschou Praktikant
17. april 2005 - 14:43 #67
hvis jeg forstår dig korrekt så bør der vel være OR ved alle fritekst søgninger og AND ved køn, alder, region
Således at man kan søge på en som enten hedder sune eller benny men uanset hvad er mand og uanset hvad bor i kbh
Avatar billede subro Nybegynder
17. april 2005 - 14:46 #68
Jeps.... Det er nemlig rigtigt! Det har jeg også rettet det til og nu opfører den sig som jeg vil have - KANON Busschou! Men der er stadig probs med Køn, disse kan den ikke søge på! I databasen står der under Køn enten mand eller kvinde. Lige nu står der i koden for Køn AND (Kon = 'Kvinde') og AND (Kon = 'Mand'), det skulle vel være OK!??!
Avatar billede busschou Praktikant
17. april 2005 - 14:50 #69
nej der er forskel på store og små bogstaver
Så prøv (Kon = 'kvinde') og AND (Kon = 'mand')
Avatar billede busschou Praktikant
17. april 2005 - 14:52 #70
Det burde virke..så jeg smider et svar :o)
en hård kamp men det var vel det værd :o)
Nu skal jeg lidt ud og lufte de efterhånden skæve øjne hehe
Avatar billede subro Nybegynder
17. april 2005 - 14:53 #71
Hov... sorry! I DB'en står de også med stort for-bokstav!
Avatar billede subro Nybegynder
17. april 2005 - 14:54 #72
Hæ hæ!!! Det er iorden busschou, jeg vil gøre det samme!!! Du har været en kanon hjælp, så jeg vil selv lige prøve at kigge på det dér med de Køn!!!
Hermed point givet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester