munchen / münchen zoeken
Ik heb een simpel regeltje:
[script]$result = mysql_query("SELECT * FROM users WHERE city LIKE '%".$_POST['zoeken']."%'") or die (mysql_error());[/script]
Als een gebruiker nu als city "München" heeft en ik zoek op "Munchen" dan vind die hem niet.
Hoe kan ik dit oplossen dat als ik "Munchen" zoek dat hij ook "München" laat zien als resultaat.
Groeten Dennis
pas goede foutafhandeling toe en denk om sql injection
Dennis meijer op 03/08/2011 21:17:27:
Mensen,
Ik heb een simpel regeltje:
[script]$result = mysql_query("SELECT * FROM users WHERE city LIKE '%".$_POST['zoeken']."%'") or die (mysql_error());[/script]
Als een gebruiker nu als city "München" heeft en ik zoek op "Munchen" dan vind die hem niet.
Hoe kan ik dit oplossen dat als ik "Munchen" zoek dat hij ook "München" laat zien als resultaat.
Groeten Dennis
Ik heb een simpel regeltje:
[script]$result = mysql_query("SELECT * FROM users WHERE city LIKE '%".$_POST['zoeken']."%'") or die (mysql_error());[/script]
Als een gebruiker nu als city "München" heeft en ik zoek op "Munchen" dan vind die hem niet.
Hoe kan ik dit oplossen dat als ik "Munchen" zoek dat hij ook "München" laat zien als resultaat.
Groeten Dennis
Dit heeft alles te maken met de collation van je veld :) Je hebt in MySQL karakter sets en collaties die veel met elkaar te maken hebben. Karakterset zegt iets over hoe tekst opgeslagen wordt en bijv. hoeveel bytes een karakter bevat en een collatie is bepaald hoe de daadwerkelijke tekst behandeld wordt bij vergelijkingen e.d.
In jouw geval zou je dus eventueel de collatie op het veld german_ci (weet de volledige benaming ff niet) kunnen zetten. Dit betekend dan dat Munchen hetzelfde als München is. Stel je hem dus in op latin1_swedisch_ci wat vaak de standaard is, dan wordt er gekeken naar de zweede taal en daar is het waarschijnlijk niet hetzelfde :)
In het MySQL developer exam boek wordt dit onderdeel zeer uitgebreid en goed onderbouwt behandeld overigens, zeker een aanrader.
ISBN10: 0672328127
ISBN13: 9780672328121
Vincent Huisman op 03/08/2011 22:59:27:
pas goede foutafhandeling toe en denk om sql injection
Goed dat je hem daar op wijst, alleen best wel een misser dat je daarna helemaal niet in gaat op de context van de vraag.
Gewijzigd op 04/08/2011 00:09:44 door kees Schepers
Dit is een voorbeeld regeltje die ik zomaar even heb getyped wat veel op die van mij lijkt.
Hier zit de foutafhandeling niet in maar die heb ik wel.
Is er misschien ook een andere oplossing voor dit probleem via een query of moet ik perse de database veranderen?
Moet de gebruiker de naam van de stad (München) zelf intypen? Of selecteert hij die uit een (drop-down) menu?
Dennis meijer op 04/08/2011 22:33:16:
Beste,
Dit is een voorbeeld regeltje die ik zomaar even heb getyped wat veel op die van mij lijkt.
Hier zit de foutafhandeling niet in maar die heb ik wel.
Is er misschien ook een andere oplossing voor dit probleem via een query of moet ik perse de database veranderen?
Dit is een voorbeeld regeltje die ik zomaar even heb getyped wat veel op die van mij lijkt.
Hier zit de foutafhandeling niet in maar die heb ik wel.
Is er misschien ook een andere oplossing voor dit probleem via een query of moet ik perse de database veranderen?
Het heeft alles te maken met collaties, er zijn vast meerdere oplossingen maar zou vooral naar collaties studie doen :)
@Kees, weet je toevallig ook een goede tutorial op internet hiervoor?