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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème accent dans requete sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème accent dans requete sql

n°1402526
bluguludu
Posté le 07-07-2006 à 09:40:41  profilanswer
 

Bonjour,
En ce moment , j'ai un problème avec les accent :
Je fais une requete de recherche à partir d'une liste complétée par la base de données
Cette liste s'appelle "souscat". Dans cette liste, j'ai des chaines de caractères avec des accents (Café & Bar , Plâtrier ...). Donc je récupère la chaine de caractère sélectionnée dans la liste pour ma requete et la requete ne renvoit rien ! Et ca , uniquement lorsque il ya un accent.
J'ai donc décidé de supprimer tous les accents de ma table où je fais la recherche et aussi les accents de la chaine de caractère de ma liste , mais sans que ceux-ci disparaissent dans la liste . Par exemple :
 

Code :
  1. <?php //Le système de Recherche
  2. function sans_accent($chaine)
  3. {
  4.    $accent  ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
  5.    $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
  6.    return strtr(trim($chaine),$accent,$noaccent);
  7. }
  8. if (isset($_REQUEST['souscat']))
  9. {
  10. if ($_REQUEST['action1']=="toute" )
  11. {
  12. $sous=sans_accent($_REQUEST['souscat']);
  13. $liendb=mysql_connect($bddserver,$bddlogin,$bddpassword);
  14. mysql_select_db ($bdd);
  15.            $sql = "SELECT * FROM table1
  16.          
  17.                    WHERE  domaine LIKE '%" . $_REQUEST['cat'] .
  18.            "%'
  19.                    AND activite LIKE '%" . $sous .
  20.            "%'
  21.          ORDER BY ville,nom";
  22. }


Mais la , c'est la meme chose : elle ne renvoit rien ! Pourtant si je prend l'exemple de "café & bar", j'ai "cafe & bar" dans ma table1 et j'ai "café & bar" dans ma liste. Ensuite, j'utilise, juste avant la requete, la fonction sans_accent donc logiquement je devrai avoir "cafe & bar" dans ma variable $sous .
Donc voila , j'aimerai bien savoir où ai-je fait mon erreur
 
Merci


Message édité par bluguludu le 07-07-2006 à 10:23:12
mood
Publicité
Posté le 07-07-2006 à 09:40:41  profilanswer
 

n°1402528
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-07-2006 à 09:45:27  profilanswer
 

rassure moi, y'a bien un moment ou tu l'executes ta requete???
 
Mais bon pour résoudre ton problème tu aurais du tout passer en utf-8 ( ta base, tes scripts, tes pages html)...


Message édité par anapajari le 07-07-2006 à 09:46:18
n°1402532
guitou12
Dev php à mi-temps :D
Posté le 07-07-2006 à 09:47:46  profilanswer
 

Si tu affiches ta requête finale ca donne quoi ?
 
PS: les balises code sont tes amies !!

n°1402535
bluguludu
Posté le 07-07-2006 à 09:50:43  profilanswer
 

Oui oui je te rassure , je l'execute bien ! En fait ca marche nickel lorsque que c'est une chaine de caractère sans accent , là ma requete finale affiche un résultat ! C'est juste un problème d'accent !

n°1402541
guitou12
Dev php à mi-temps :D
Posté le 07-07-2006 à 09:58:45  profilanswer
 

bluguludu a écrit :

Oui oui je te rassure , je l'execute bien ! En fait ca marche nickel lorsque que c'est une chaine de caractère sans accent , là ma requete finale affiche un résultat ! C'est juste un problème d'accent !


 
Quand tu as des accents dans ta requete originale, que donne ta requete finale ?
 
1 - Les accents sont bien convertis en caractères normaux et tu obtiens une requête correcte
2 - Il manque des caractères parci parla
3 - Ca n'affiche pas grand chose
4 - Obiwan Kenobi

n°1402555
bluguludu
Posté le 07-07-2006 à 10:12:45  profilanswer
 

Bah je te donne un peu la structure de ma table 1
 
Champ :  id      activite           nom               domaine       ville
 
exemple : 1      cafe & bar   bar de lunion           4          beaufort
 
donc je fais la recherche avec comme critère "activite" et ensuite moi j'affiche le champ "nom"
Pour en revenir à ta question , lorsque quil ya un accent et que je fais afficher la requete $sql , il n'affiche rien !

n°1402568
guitou12
Dev php à mi-temps :D
Posté le 07-07-2006 à 10:24:25  profilanswer
 

J'ai testé ta fonction sans_accent qui a l'air de bien fonctionner.
 
Si quand tu affiches la requête (pas le résultat !!) rien ne s'affiche c'est qu'il ya un souci dans ton code php.
 
Si tu affiches la requête qu'elle semble correcte mais quand tu l'exécutes ça ne retourne rien alors c'est la requête qui est fausse.
 
PS: pourquoi ne pas faire une table activité ?  
 
PS2: si tes domaines sont exprimés en integer (comme dans ton exemple) ca ne sert à rien de faire un like mais un = tout con suffira.
 
Enfin bon là je suis à court d'idées avec les infos que tu as donné

n°1403842
aidara
Posté le 10-07-2006 à 14:32:26  profilanswer
 

Essaie dans ta requete sql de faire:
 
 
 
18.            $sql = "SELECT * FROM table1
19.            
20.                    WHERE  domaine LIKE '%' . $_REQUEST['cat'] .
21.            '%'
22.                    AND activite LIKE '%' . $sous .
23.            '%'
24.                       ORDER BY ville,nom";
 
En fait g remplacé les " près du % par des ' , n'oublie pas que si tu les melanges, la requete sql risque d'etre   confuse.
Tiens moi au courant........

n°1404720
Berceker U​nited
PSN : berceker_united
Posté le 11-07-2006 à 15:48:17  profilanswer
 

aidara a écrit :

Essaie dans ta requete sql de faire:
 
 
 
18.            $sql = "SELECT * FROM table1
19.            
20.                    WHERE  domaine LIKE '%" . $_REQUEST['cat'] .
21.            "%'
22.                    AND activite LIKE '%" . $sous .
23.            "%'
24.                       ORDER BY ville,nom";
 
En fait g remplacé les " près du % par des ' , n'oublie pas que si tu les melanges, la requete sql risque d'etre   confuse.
Tiens moi au courant........


Correction  [:aloy]


Message édité par Berceker United le 11-07-2006 à 15:48:47

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

  Problème accent dans requete sql

 

Sujets relatifs
[LOT DTS] Probleme de DemarrageProblème de texte qui dépasse d'un cadre
Problème avec le contenu d'un menu déroulant sous AccessProblème de lag pour un jeu
Probleme de liaison entre une list et des textproblème avec mon formulaire perl/cgi (debutant)
problème compilation mpich - Linux[C#] Composant Indy et mail avec accent ...
requete sql probleme avec accent é 
Plus de sujets relatifs à : Problème accent dans requete sql


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