17. oktober 2005 - 09:40Der er
15 kommentarer og 1 løsning
Hjælp til at lave en søgefunktion?
Hejsa, Jeg sidder som projektleder på en stor landsdækkende portal, som skal lanceres 1. januar, men jeg mangler meget en god søgemaskine, der skal kunne søge på noget forskelligt...
Er der nogen der har tid til at hjælpe mig? Jeg er meget interesseret i selv at lære det, så det ik bare skal være et færdigt script der leveres.
Den virker fint nok, men denne form skulle jeg gerne have kombineret med en dropdown, hvor der er nogle hovedkategorier i. Dvs. at hovedkategorien skal vælges, og hvis man indtaster en fritekst, skal det så være indenfor denne hovedkategori, og hvis man ikke vælger noget i hovedkategori, skal friteksten bare søge i hele databasen, altså på alle hovedkategorier? Er det nogenlunde klart?
Derudover skulle jeg gerne bagefter, når dette virker, havde den yderligere udbygget, sådan at man også skal kunne søge på postnr, som man også vælger fra en dropdown, men jeg ville gerne have, at jeg først får det med fritekst og dropdown med hovedkategorierne til at virke...
På forsiden, har jeg også lavet formen for hovedkategorierne i en dropdown, og det virker også godt nok med at den finder den hovedkategori man vælger, men jeg kan ik lige gennemskue hvordan jeg får den kombineret??
$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato' AND hovedkategori like '%$dropdown%'"); $number = mysql_num_rows($sql); print "Din søgning på: <b>$dropdown</b> gav $number resultat(er)";
$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND (overskrift like '%$seek%' OR beskrivelse like '%$seek%' OR hovedkategori like '%$seek%' OR underkategori like '%$seek%')"); $number = mysql_num_rows($sql); print "Din søgning på: <b>$seek</b> gav $number resultat(er)";
while ($row = mysql_fetch_array($sql)) { print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>"; } } elseif ($sog) { print "Du skrev ikke noget søgeord!!"; } else { } ?> </font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></p></td> </tr> </table> </body> </html>
Dropdown boxen og fritekst fungere fint nok hver for sig, men jeg vil gerne finde ud af hvordan jeg kombinere dem i samme søgning, det er det der er min helt store problem??
Det er slet ikke sikkert at det er svært at lave, men jeg mangler bare et eller andet for at komme igang med det...
$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND (overskrift like '%$seek%' OR beskrivelse like '%$seek%' OR hovedkategori like '%$dropdown%' OR underkategori like '%$seek%')"); $number = mysql_num_rows($sql); print "Din søgning på: <b>$seek</b> gav $number resultat(er)";
while ($row = mysql_fetch_array($sql)) { print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>"; } } elseif ($sog) { print "Du skrev ikke noget søgeord!!"; } else { } ?> </font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></p></td> </tr> </table> </body> </html>
sorenbuss: Ikke lige det jeg leder efter, og jeg har jo også en søgefunktion der virker som den skal, skal bare have fundet ud af hvordan jeg sætter dem sammen til en kombineret søgning...
big_ossi: Jeg har lige smidt koden op igen på: selvhjaelp.dk/search.php Men det er lige som om, at den kun søger på det jeg taster ind i fritekst og ikke tager det med i dropdown...
Ja, jeg har også ændret hist og pist og lavet lidt om, så nu skulle det virke, mangler bare det sidste felt der skal kobles på, nemlig postnummer, og den driller også lidt, kan ik lige få den til at finde noget, selvom den skulle finde noget...jeg er ik helt sikker på om jeg skriver det helt rigtigt, det ser pt sådan her ud:
if (!empty($select) && !empty($fritekst) && !empty($postnummer)){
db_con();
$dato_nu = time();
$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND hovedkategori like '%$select%' AND (overskrift like '%$fritekst%' OR beskrivelse like '%$fritekst%' OR hovedkategori like '%$fritekst%' OR underkategori like '%$fritekst%') AND postnr like '%postnummer%'");
$number = mysql_num_rows($sql); print "Din søgning på: <b>$select</b>, <b>$fritekst</b> og <b>$postnummer</b> gav $number resultat(er)";
while ($row = mysql_fetch_array($sql)) { print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>"; } }
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.