Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1149 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Requete php sql avec accent : pas de correspondance dans la base

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete php sql avec accent : pas de correspondance dans la base

n°2154139
plope
Posté le 24-08-2012 à 13:47:37  profilanswer
 

Bonjour,
 
J'ai un problème avec une de mes requetes.
 
La voici :  

Citation :

$bdd=new PDO('mysql:host=localhost;dbname=ma_base','root','root');
$bdd->query("SET NAMES UTF8" );
$reserv = $_POST['reservation_notes'];
 $ma_requete2="SELECT * FROM `spip_articles`  WHERE titre='$reserv' OR  descriptif='$reserv' ";
 $envoi2 = $bdd->query($ma_requete2);
 while($resultat2 = $envoi2->fetch())
 {
echo $resultat2['texte'];  
 }


 
En fait le problème est que si $_POST['reservation_notes'] contient un accent, aucun résultat n'est trouvé. En faisant un echo de ma requete et en passant directement par phpmyadmin, la ligne existe et est affichée correctement. Et si $_POST['reservation_notes'] ne contient ni accent ni caractères spéciales echo $resultat2['texte']; affiche bien ce qui est dans la base.
 
Ma base est en utf-8, ma page est en utf-8.
 
J'ai beaucoup cherché sur le net, j'ai essayé pas mal de choses, sans résultat, le echo reste vide.  
 
Merci.

mood
Publicité
Posté le 24-08-2012 à 13:47:37  profilanswer
 

n°2154160
rufo
Pas me confondre avec Lycos!
Posté le 24-08-2012 à 15:50:13  profilanswer
 

à tout les coups, t'as mis champs case sensitive ou en binaire au lieu de case insensitive et text. Faut juste changer la collation et/ou le type du champ. (ex : MEDIUMBLOB devient MEDIUMTEXT si t'es sous mysql).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2154347
plope
Posté le 27-08-2012 à 07:55:01  profilanswer
 

Merci pour ta réponse mais mon problème ne vient pas de ma base vu que si je tape la requête dans phpmyadmin, le bon résultat est retourné.  
 
 

n°2154359
rufo
Pas me confondre avec Lycos!
Posté le 27-08-2012 à 09:55:24  profilanswer
 

Regardes quel est le charset de la connexion à ta BD quand php s'y connecte (dans le fichier de conf de Mysql ou en regardant les variables de conf via phpmyadmin).
 
PS : le OR dans ta requête, c'est pas une bonne solution, c'est ultra lent.
 
Tu peux utiliser MATCH....AGAINST   (si t'as activé le full-text search)
Tu peux utiliser aussi WHERE CONCAT('titre', 'descriptif') LIKE '%$reserv%'


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2154467
plope
Posté le 27-08-2012 à 12:48:01  profilanswer
 

J'ai bien mis un SET NAMES UTF-8 lors de ma connexion.  
 
Merci pour le conseil pour le OR.
 
Après quelques (beaucoup) de test, je n'ai pas trouvé de solution donc dans mon formulaire je vais passer l'ID plutôt que le titre ou le descriptif.  
 
Merci d'avoir essayé de m'aider ;)

n°2154520
b@udouin
Posté le 27-08-2012 à 15:20:18  profilanswer
 

Est-ce que ton fichier php est bien enregistré en UTF-8 aussi, et est-ce que le serveur traite bien les données qu'il reçoit par POST en UTF-8 ?


---------------
http://www.poster-kit.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Requete php sql avec accent : pas de correspondance dans la base

 

Sujets relatifs
Ajouter informations Base de donnéesExtraire une base de donnée depuis un site de vidéos
Exclure enregistrements d'une requête MySQLMigration site internet et base Access
VBS : Connaitre temps de réponse requête HTTP via proxyprobléme d'affichage d'une base de donnés (service web)
Créer une base de donnée avec moteur de recherche[MySQL] Convertir une base en UTF8
Temps d'éxécution requête Oracle Sql trop longuePar défaut Erreur dans ma création de base
Plus de sujets relatifs à : Requete php sql avec accent : pas de correspondance dans la base


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR