login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoeken op tag (Opgelost)

Offline Frisbee - 11/03/2010 13:14
Avatar van FrisbeeHTML beginner M'n titel is waarschijnlijk een beetje onduidelijk omdat ik dit probleem niet in één zin kan uitleggen ;)

Ik wil in een mysql database zoeken naar tags. Dat is natuurlijk eenvoudig door LIKE te gebruiken, maar nu loop ik tegen een probleem aan.

Wanneer een gebruiker zoekt naar een woord dat langer is dan de tag (dus de tag komt gedeeltelijk voor in het woord) wil ik dat deze ook gevonden wordt.

Dus als voorbeeld:
De gebruiker zoekt op "website", in de database staan de tags "web" en "site", dan wil ik dat die gevonden worden.

Ik zat zelf te denken aan een soort van omgekeerde LIKE:
"SELECT * FROM tags WHERE %tag% LIKE 'website'"

Maar dat werkt natuurlijk niet op die manier.

Hoe zou ik dit op kunnen lossen?

6 antwoorden

Gesponsorde links
Offline Ontani - 11/03/2010 13:28
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Eigenlijk werkt die manier wel maar de syntax was fout.

"SELECT * FROM tags where 'website' like '%' + tag + '%'"
Offline Abbas - 11/03/2010 13:32 (laatste wijziging 11/03/2010 13:32)
Avatar van Abbas Gouden medaille

Crew .NET
Edit:
Ik wist niet dat het kon zoals Ontani vertelt. Excuses.. 

Dit vereist waarschijnlijk iets meer tijd van serverwerk maar wat je kan doen is alles selecteren uit een kolom en dan loopen door je zoekwaarde en als die voorkomt, weergeven.

Soort van code om het duidelijk te maken:
  1. $sql = "SELECT kolom FROM tabel";
  2.  
  3. while(er resultaten zijn)
  4. if(huidig resultaat "LIKE" zoekterm)
  5. echo resultaat;
Offline Martijn - 11/03/2010 13:40
Avatar van Martijn Crew PHP misschien heb je ook iets aan de levenshtein functie 
Offline Ontani - 11/03/2010 13:47
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Lijkt me toch het gemakkelijkste dit rechtstreeks vanuit mysql te doen.

De methode die ik beschrijf werkt in MsSQL, ik kan niet zeggen of het dat ook doet in MySQL.
Offline Martijn - 11/03/2010 13:52 (laatste wijziging 11/03/2010 13:53)
Avatar van Martijn Crew PHP zeg, kan FULLTEXT search dit niet trouwens? Volgens mij is dat gemaakt voor dit 

edit: http://www.site...ext_Search
Offline Frisbee - 11/03/2010 14:04 (laatste wijziging 11/03/2010 14:08)
Avatar van Frisbee HTML beginner Hij doet het! 

Ik moest alleen voor mysql CONCAT() gebruiken om de strings met de veldnaam te verbinden.

Bedankt voor de snelle reacties!

@Martijn
Niet wat ik zocht, maar wel een erg interessante functie. Ga ik me ook zeker nog even in verdiepen ;)

En fulltext kan ik hier niet gebruiken omdat ik m'n tags in een apparte tabel opsla. Ze moeten ook nog vertaald worden namelijk.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.171s