Ikke gennemskue logikken i search script

Tags:    php logik script

Hej Udvikleren,

Jeg har brugt et search script på min projektside, men vil gerne vide hvordan det fungere, selv om jeg har fået det til at virke. Størstedelen giver mening for mig, men er stadig i tvivl om dele af scriptet. Vil gerne hører om i kunne give mig en "skåret ud i pap" beskrivelse af det jeg ikke forstår i scriptet, så jeg kan lærer at forstå scriptet og php bedere.

Her er hele scriptet
Fold kodeboks ind/udPHP kode 

Efter det laver jeg bare runrows og echoer data ud på siden, og det er jeg helt med på. Der hvor jeg kommer mest i tvivl er:
Fold kodeboks ind/udPHP kode 


Håber i har tid til at hjælpe en php-newbie :)



7 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 19 karma
Sorter efter stemmer Sorter efter dato
Det den gør er først at dele den indtastede søgestreng ind i seperate ord med explode (den deler altså strengen ved mellemrum).

Derefter køres en lykke der laver din SQL forespørgsel. Den kommer til at få formen:

keywords LIKE '%søgeord_1%' AND keywords LIKE '%søgeord_2%'

osv.. Dette er måden man søger på i en MySql database - altså finder noget i en kolonne der "minder om" det ord man har indtastet. Dette skal forstås på den måde, at HELE indholdet i databasekolonnen ikke matcher din søgestreng, men kun en del af den..

Hvis indholdet i keywords f.eks. er: "hej med dig. Hvordan går det?"

Så vil du kunne få resultater ved at bruge "LIKE '%hej%' AND '%ord%'" (den sidste fra "hvordan")

Derefter foretages forespørgslen til databasen og som du selv skriver finder den bare antallet af resultater og udskriver disse ;-)

Håber det hjalp :)



Du kan ændre 'AND' til 'OR' i din LIKE-statement. Dvs. du skal ændre linje 36 fra
Fold kodeboks ind/udKode 

til
Fold kodeboks ind/udKode 

Så vil du få et hit hvis mindst ét af søgeordene er indeholdt i keywords.



Jeg sad også og tænkte det samme som AH - problemet ved at bruge "OR" når det gælder søgning er, at man måske vil få resultater der kun indeholder nogle af de keywords der bliver søgt efter.

Måske kunne du i stedet lave en liste over en masse af de klassiske småord som af, og, eller, det, den, dette osv osv. Google fjerner også en del af disse småord i søgninger da det ofte er fordi folk søger i sætninger og ikke keywords ;-)

Med sådan en liste kan du bare pille dem ud af søgestrengen - vel og mærke hele ordet, ikke hvor "og" er en del af et andet ord som f.eks. "bog" ;-)



Det her:
Fold kodeboks ind/udKode 

og det her er ens:
Fold kodeboks ind/udKode 




Det var så lidt.. Husk at stemme mit svar op :-)



Tak, dejligt du gad hjælpe!



Har jeg gjort :) Lige et spørgsmål.

Som det er nu, så bliver man nød til at søge efter ordene ret direkte. Lad os sige keywords er: Opsætning kurser.
Hvis jeg så søger efter fx "Opsætning af kurser", så finder den ingenting i søgningen, da jeg har "af" med.
Er der ikke en bedere løsning, så den evt kun skal bruge dele af søgningen, i stedet for at man skal skrive det i rigtig rækkefølge?



t