Søgefunktion i PHP

Tags:    php mysql

Hej
Jeg er gået igang med at lave en søgefunktion i PHP, som skal kigge i min database efter matches.
Min searchform ser således ud:
Fold kodeboks ind/udHTML kode 

Når man så søger sendes man videre til den fil der udfører søgningen.
Fold kodeboks ind/udPHP kode 

Sådan ser det ud. Jeg er dog i tvivl omkring hvordan jeg skal hente det fra MySQL, når den skal søge i alle rækker og felter i tabellen.
Fold kodeboks ind/udPHP kode 

Så hvad skal min mysql_query være for at få det ønskede resultat?



Indlæg senest redigeret d. 21.06.2012 17:37 af Bruger #17072
10 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 20 karma
Sorter efter stemmer Sorter efter dato
du kan bruge LIKE, og % som wildcard.

$string = $_POST["searchfield"]; // husk: validate / anti sql-injection..
$query = "SELECT * FROM xx WHERE yy LIKE '%$string%'";



ja du skal bruge WHERE..

du kan så evt bruge noget ala det her hvis du skal søge i mere end i et felt.
$query = "SELECT * FROM xx WHERE yy LIKE '%$string%' || zz LIKE '%$string%'";



Ok. Nu har jeg så fået implementeret søgefunktionen på siden og er stødt i et lille problem:
Fold kodeboks ind/udPHP kode 

Vi er enige om at når jeg indtaster et søgeord i søgefeltet i min formular, så skulle jeg gerne få alle resultater, der på den ene eller anden måde matcher, så skulle den gerne vise dem. Dog kommer der intet på siden. Jeg får mit design, men min content-div er tom.
Hvad er der galt med den? Det burde jo virke og jeg ved at der burde være resultater i tabellen i databasen, på de søgeord jeg bruger.


der hvor der står '%string%' skal der stå '%$search%' - ellers søger du på ordet string og ikke det der er indtastet :)



undskyld .. men /facepalm :/



Jo, men kan jeg ikke bare fjerne WHERE yy og så gøre således?
Fold kodeboks ind/udSQL kode 

Eller skal den have at vide i hvilket felt den skal søge?



Det er sansynligvis lidt af en omvej det her, men, prøv at dele hvert enkelt ord op i hver sin variabel, dvs. array..

Derefter foreach'er du hvert enkelt variabel/array indhold, og søger på det med wildcards osv, i en MySQL, samler alle værdier i et array igen, også lave en print der kan vise dine informationer i 1 enhed, så det ikke bliver for rodet.

Men, som sagt, det er nok en omvej, dog syntes jeg det er mere interessant at ramme hvert ord, så mange gange som muligt, så hvis du får samme udprint flere gange, kan du toppe dem der er ramt flest gange, og nedjustere resten hvis de ikke er set så mange gange.



Ok, det var jo nemt.
Fold kodeboks ind/udPHP kode 

Og så skulle den sag være klaret eller hvordan?



Ok, det var jo nemt.
Fold kodeboks ind/udPHP kode 

Og så skulle den sag være klaret eller hvordan?


noget i den stil ja =)



Ok. Nu har jeg så fået implementeret søgefunktionen på siden og er stødt i et lille problem:
Fold kodeboks ind/udPHP kode 

Vi er enige om at når jeg indtaster et søgeord i søgefeltet i min formular, så skulle jeg gerne få alle resultater, der på den ene eller anden måde matcher, så skulle den gerne vise dem. Dog kommer der intet på siden. Jeg får mit design, men min content-div er tom.
Hvad er der galt med den? Det burde jo virke og jeg ved at der burde være resultater i tabellen i databasen, på de søgeord jeg bruger.



ok. det prøver jeg :)



t