Visa ett inlägg
Oläst 2007-12-20, 15:30 #1
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
Hej.

Jag håller på att skriva ett php-script som gör en sökning i en MySQL-databas.

Saken är att sökningen skall ske i flera fält och kan ske med flera sökord samtidigt.

Exempel:
Tabellen medlemmar:
Kod:
mnr   förnamn efternamn   adress      tfn
----------------------------------------------------------------
1    | Anders | Olsson   | Kufgränd 4   | 012345678
2    | Gustaf  | Andersson | Rusbacken 2A| 0701010101
- Om jag nu gör en sökning på ordet "anders" så kommer båda posterna att returneras.
- Om jag gör en sökning på "anders olsson" så returneras ingen post, fast det till fullo stämmer överens med mnr 1.

Som jag har gjort nu så gör jag så här:
- Delar upp söksträngen i alla sökorden.
- För varje sökord ställer jag en fråga med WHERE-villkoret "LIKE '%säkordet%'" för varje fält i medlemstabellen.
- Varje träff lägger jag in i en temporär tabell innehållandes mnr & träffar.
- Lista sedan endast de rader som har flest antal träffar.

Det är lite omständigt tycker jag, men finns det något lättare sätt att utföra denna operation på?
Kanske direkt i MySQL?
Förslag på metoder?
oddholst är inte uppkopplad   Svara med citatSvara med citat