![]() |
Sökfunktion: Söka efter vissa ord
Hejsan! Försöker bygga en enkel sökfunktion men går inte riktigt som jag vill.
Jag vill kunna söka på flera ord i en string men som inte nödvändigtvis ligger efter varandra. Såhär går det nu: Riktiga ordet: hej på dig går att söka: hej på dig hej på på dig hej på dig Går inte att söka: hej dig kod: PHP-kod:
Någon som kan hjälpa mig och berätta hur jag skall göra? :) Jag är nybörjare.. Tack! |
Det blir mycket enklare om du använder MySQLs FULLTEXT index. Se http://dev.mysql.com/doc/refman/5.0/...xt-search.html eller exempel på t.ex. http://www.artfulcode.net/articles/f...arching-mysql/
|
Jag brukar splitta upp frasen i enskilda ord och ge dem olika "rankingpoäng" med CASE WHEN. Första ordet får kanske 90, nästa 80, nästa 65 o.s.v. Således om ord 1 och 3 matchar en post har den 155 rankingpoäng, om ord 2 och 3 matchar så har de 145.
Man kan ju ge dem lika många poäng också men första ordet brukar vara mer relevant i de flesta lägen. Galet trött så osäker på att jag gjorde någon poäng här, men du kanske förstår? |
Tack nicclas, ska kolla på saken! :)
Jodå Jimmit, jag förstår tankesättet, men inte exakt hur man skulle lösa det rent tekniskt. Får kolla mer på era lösningar, tack så mycket! |
Alla tider är GMT +2. Klockan är nu 01:36. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson