[Résolu] Collation et caracteres ds requete avec like

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Résolu] Collation et caracteres ds requete avec like

Re: Collation et caracteres ds requete avec like

par diice » 27 mars 2012, 14:44

Merci beaucoup de ta réponse !

j'ai fait cette manip, mais j’avais toujours mon probleme !
En fait, c t tout bete, mon admin etait en .... ISO-8859-1... du coup, forcément, y'avait bug qd j'incrémentait mes tables.
et en plus j'avais tinyMCE qui formate tout seul le text...

bref, du coup tout est résolu !
merci de ton aide !


Le sujet est résolu ! je ne sais pas comment on le spécifie !

Re: Collation et caracteres ds requete avec like

par sadeq » 27 mars 2012, 14:12

Bonjour,

Pour définir le type d'encodage de caractères pour PHP/MySQL, il faut suivre la méthode suivante:
1. Dans la base de données MySQL:
vérifier que l'interclassement de la base de données, des tables, et des champs text et varchars est en utf8_general_ci.

2. Dans les programmes PHP:
Après avoir ouvert une connexion avec mysql_connect(), exécuter la requête suivante pour définir l'encodage UTF8:
mysql_query("SET NAMES 'UTF8'");

A+

[Résolu] Collation et caracteres ds requete avec like

par diice » 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

Code : Tout sélectionner

<meta charset="utf-8">
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 :

Code : Tout sélectionner

select titre from MATABLE where LOWER(titre) like '%$_POST['titre']%'
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&eacute;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']%'
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