webForumDet fria alternativet

Sökning med fler fält

PHP

0 svar · 208 visningar · startad av dreas

Medlem sedan jan. 2004140 inlägg
Frågan#1

Hej igen!
Ytterligare ett problem som jag har;
Jag har gjort en sökfunktion som söker igenom alla fält i en databas efter det man skriver in i ett allmänt text-form.


if (isset($_POST['sok'])) {

    // Räkna sökresultaten 
  		$get = mysql_query("SELECT * FROM cv WHERE memo LIKE '%" . $sok . "%' OR fnamn LIKE '%" . $sok . "%' OR enamn LIKE '%" . $sok . "%' OR gatuadress LIKE '%" . $sok . "%' 
		OR postadress LIKE '%" . $sok . "%' OR dagtid LIKE '%" . $sok . "%' OR arbete LIKE '%" . $sok . "%' OR yrkbevis LIKE '%" . $sok . "%' OR arbetstid LIKE '%" . $sok . "%' 
		OR start LIKE '%" . $sok . "%' OR arbeten LIKE '%" . $sok . "%' OR ref LIKE '%" . $sok . "%' OR utb LIKE '%" . $sok . "%' OR du LIKE '%" . $sok . "%' 
		OR planer LIKE '%" . $sok . "%' OR info LIKE '%" . $sok . "%' OR datum LIKE '%" . $sok . "%' ORDER BY enamn");
		$rowCount = mysql_num_rows($get);

    // Kolla hur många resultat som hittades 
    if ($rowCount == '0') 
    { 
        echo "<p>Din sökning på ordet <span class=sok><b>$sok</b></span> gav inga resultat.</p>"; 
    } 
    else 
    { 
            echo "<p>Din sökning på ordet <span class=sok><b>$sok</b></span> återfanns i $rowCount poster.</p>"; 

     
	 print ("<table width=\"600\" border=\"0\">");
         
        // Hämta sökresultaten 
        $get = mysql_query("SELECT * FROM cv WHERE memo LIKE '%" . $sok . "%' OR fnamn LIKE '%" . $sok . "%' OR enamn LIKE '%" . $sok . "%' OR gatuadress LIKE '%" . $sok . "%' 
		OR postadress LIKE '%" . $sok . "%' OR dagtid LIKE '%" . $sok . "%' OR arbete LIKE '%" . $sok . "%' OR yrkbevis LIKE '%" . $sok . "%' OR arbetstid LIKE '%" . $sok . "%' 
		OR start LIKE '%" . $sok . "%' OR arbeten LIKE '%" . $sok . "%' OR ref LIKE '%" . $sok . "%' OR utb LIKE '%" . $sok . "%' OR du LIKE '%" . $sok . "%' 
		OR planer LIKE '%" . $sok . "%' OR info LIKE '%" . $sok . "%' OR datum LIKE '%" . $sok . "%' ORDER BY enamn");

Det funkar som det ska. Men om jag nu vill göra en extra funktion som är mer utav en "avancerad sökning", dvs användaren kan använda flera olika fält att söka i specifika kolumner i databasens. T.ex. att enbart söka i kolumnen arbeten.

Det enda jag gjort är att sätta AND istället för OR och placerat aktuella formfältet istället för $sok.
Problemet är att jag vill att användare ska kunna lämna vissa fält tomma, och ändå generara träffar av det som skrivs in. Måste jag göra en hel drös med if-satser för att undersöka ifall något fält lämnas tomt, eller går detta att lösa på smidigare sätt?

Ledsen för en riktigt dålig förklaring, men jag hoppas ni är med.

Tack!
Andreas

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)