Avatar billede rotco Juniormester
28. september 2008 - 16:22 Der er 12 kommentarer og
1 løsning

Søge problem, Like or..

Hejsa,

Jeg har lavet et søgescript til min hjemmeside, så jeg kan søge forskellige ting... Dog har jeg et lille problem:

Lad os antage at teksten ser sådan her ud:

"Det her er en mand, en sjov lille en".

Hvis jeg søger på "mand" så finder jeg teksten, men hvis jeg søger "sjov mand" så finder den ikke det resultat. Det jeg vil frem til er:

Jeg vil gerne at man kan skrive flere søgeord, og finde resultater alt efter om et af ordene er der i..

Nogen idèer?

Indtil videre er søge koden således:
$result = mysql_query("SELECT * FROM Tabel WHERE overskrift LIKE '%$search%' or link LIKE '%$search%' or beskrivelse LIKE '%$search%' or ord LIKE '%$search%'");
Avatar billede jakobdo Ekspert
28. september 2008 - 16:30 #1
Du kan evt. kigge lidt på full text search i mysql:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Avatar billede rotco Juniormester
28. september 2008 - 17:11 #2
Hej, nu har jeg kigget på det, og jeg modtager fejl.. Hvilket jeg ikke helt fatter:

$result = mysql_query("SELECT * FROM tabel WHERE MATCH (overskrift,beskrivelse) AGAINST ('$search')");
$number = mysql_num_rows($result);
echo "Der blev fundet $number resultater (Søgeord: <b>$searchb>)<br><br>";

//grab all the content
while($r=mysql_fetch_array($result))
{


Jeg får fejl i linje 20 & 24...

Linje 20 ser sådan her ud:
$number = mysql_num_rows($result);

Linje 24 ser sådan her ud:
while($r=mysql_fetch_array($result)){   

Fejlmeddelelsen ser sådan her ud:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/xxx.dk/xxx.dk/httpd.www/index.php on line 20
Der blev fundet resultater (Søgeord: Test)


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/xxx.dk/xxx.dk/httpd.www/index.php on line 24
Avatar billede jakobdo Ekspert
28. september 2008 - 17:21 #3
Ret lige:
$result = mysql_query("SELECT * FROM tabel WHERE MATCH (overskrift,beskrivelse) AGAINST ('$search')");
til:
$result = mysql_query("SELECT * FROM tabel WHERE MATCH (overskrift,beskrivelse) AGAINST ('$search')") or die(mysql_error());
Avatar billede rotco Juniormester
28. september 2008 - 17:28 #4
Får denne meddelelse:

Can't find FULLTEXT index matching the column list

Hvilket jeg ikke kan forstå fordi der står at varchar er fulltext..
Avatar billede jakobdo Ekspert
28. september 2008 - 17:44 #5
Jeg tror du skal trykke på T eller ikonet for FULL TEXT i phpadmin på de 2 felter.
Avatar billede rotco Juniormester
29. september 2008 - 00:49 #6
Okay.. Nu har jeg gjort dem til fulltext, og nu kan man rent faktisk søge..

Men nu søger den pludselig på jordens underligste måde.. Der er kun NOGLE ord den acceptere at finde...
Avatar billede rotco Juniormester
29. september 2008 - 01:16 #7
Okay nu har jeg fundet ud af hvorfor...

Det er fordi at den minimums længte der er på ord.. SKAL være 4, hvilket kun min udbyder kan lave om...

Er der en anden løsning end fulltext
Avatar billede jakobdo Ekspert
29. september 2008 - 09:44 #8
Hvis ikke du vil ind over fulltext search, så skal det vel være noget ala:

søgning på: mand
SELECT * FROM Tabel WHERE overskrift LIKE '%mand%' or link LIKE '%mand%' or beskrivelse LIKE '%mand%' or ord LIKE '%mand%'

søgning på: sjov mand
SELECT * FROM Tabel WHERE
overskrift LIKE '%sjov%' AND overskrift LIKE '%mand%'
or
link LIKE '%sjov%' AND link LIKE '%mand%'
or
beskrivelse LIKE '%sjov%' AND beskrivelse LIKE '%mand%'
or
ord LIKE '%sjov%' AND ord LIKE '%mand%'
Avatar billede rotco Juniormester
06. oktober 2008 - 00:36 #9
ja, men et søgefelt adskiller jo ikke selv ordene :-/
Avatar billede jakobdo Ekspert
06. oktober 2008 - 06:49 #10
Kig på implode(" ", $søge_ord);
Avatar billede rotco Juniormester
24. januar 2009 - 15:57 #11
Jakobdo - kom med et svar :) Ellers acceptere jeg selv..

Tak for øvrigt :)
Avatar billede jakobdo Ekspert
24. januar 2009 - 19:37 #12
Svar!
Avatar billede jakobdo Ekspert
25. januar 2009 - 12:38 #13
Takker for point.
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