[Résolu] Collation et caracteres ds requete avec like
Posté : 25 mars 2012, 20:21
Bonjour à tous,
Je ne sais pas si c'est le bon forum, mais je vous explique mon problème.
J'ai fait un site en utf8
ma base de données, mes tables et chaque champs sont aussi en utf8_general_ci.
Je suis en train de faire un moteur de recherche sur mon site qui interrogera ma base de donnée avec la requete 'where' et 'like' du style :
dans ce cadre là, j'ai évidemment un problème quand je veux chercher dans ma table un mot qui peut etre avec un accent. (le probleme des majuscules est réglé par le LOWER).
1°) exemple : la personne veut chercher le mot "ingénieur" dans ma table, ingénieur est rentré comme ça : "ingénieur" (déjà est-ce normal ?)
donc forcément quand la personne met "ingénieur" dans le champs rechercher il n'y a aucune réponse...
2°) si la personne met "ingenieur" (sans accent), il ne trouve rien non plus !
j'avoue que jusqu'ici j'ai jamais eu le probleme quand je mettai ma table en latin1_general_ci. mais j'ai lu que le utf8 etait tendu a devenir le plus standard, du coup j'ai paramétré ma table en utf8 et je me retrouve devant ce probleme !!
j'ai essayé en mettant COLLATE :
et ca ne marche pas !
avec un htmlentities($_POST['titre']), il recherche : "ingénieur", donc pas bon non plus !
comment puis-je résoudre mon probleme ??
merci par avance a vous,
bonne soirée
Je ne sais pas si c'est le bon forum, mais je vous explique mon problème.
J'ai fait un site en utf8
Code : Tout sélectionner
<meta charset="utf-8">Je suis en train de faire un moteur de recherche sur mon site qui interrogera ma base de donnée avec la requete 'where' et 'like' du style :
Code : Tout sélectionner
select titre from MATABLE where LOWER(titre) like '%$_POST['titre']%'1°) exemple : la personne veut chercher le mot "ingénieur" dans ma table, ingénieur est rentré comme ça : "ingénieur" (déjà est-ce normal ?)
donc forcément quand la personne met "ingénieur" dans le champs rechercher il n'y a aucune réponse...
2°) si la personne met "ingenieur" (sans accent), il ne trouve rien non plus !
j'avoue que jusqu'ici j'ai jamais eu le probleme quand je mettai ma table en latin1_general_ci. mais j'ai lu que le utf8 etait tendu a devenir le plus standard, du coup j'ai paramétré ma table en utf8 et je me retrouve devant ce probleme !!
j'ai essayé en mettant COLLATE :
Code : Tout sélectionner
select ... LOWER(titre) COLLATE utf8_general_ci like '%$_POST['titre']%'avec un htmlentities($_POST['titre']), il recherche : "ingénieur", donc pas bon non plus !
comment puis-je résoudre mon probleme ??
merci par avance a vous,
bonne soirée