Comparaison Mysql buguée
Résolu
Taku
-
Taku -
Taku -
Bonjour,
Je suis devant un problème qui commence à me tendre les *...*.
je m'explique :
Le code suivant est une requête visant à comparer une variable a des champs de ma base de donnée pour en récupérer lID correspondant.
Le problème, j'en suis conscient, est que dans ma base de donnée, les champs on parfois des espaces ou des accents ("Accordéon chromatique"), est ces champs la ne sont pas reconnu, même si la variable contient EXACTEMENT la même chose. Pour tous les champs qui n'ont pas d'accent, sa passe. J'ai essayer les différentes méthode COLLATE ou de changer la syntaxe de ma requête mais la je bloque vraiment...
Un coup de main ?
Merci d'avance !!!
Je suis devant un problème qui commence à me tendre les *...*.
je m'explique :
Le code suivant est une requête visant à comparer une variable a des champs de ma base de donnée pour en récupérer lID correspondant.
$Can=mysql_query("SELECT * FROM Categorie WHERE Categorie = '$Categorie'"); while ($Catn=mysql_fetch_array($Can)) { $CategorieID = $Catn['CategorieID']; }
Le problème, j'en suis conscient, est que dans ma base de donnée, les champs on parfois des espaces ou des accents ("Accordéon chromatique"), est ces champs la ne sont pas reconnu, même si la variable contient EXACTEMENT la même chose. Pour tous les champs qui n'ont pas d'accent, sa passe. J'ai essayer les différentes méthode COLLATE ou de changer la syntaxe de ma requête mais la je bloque vraiment...
Un coup de main ?
Merci d'avance !!!
A voir également:
- Comparaison Mysql buguée
- Comparaison million milliard - Accueil - Technologies
- Mysql community server - Télécharger - Bases de données
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Comparaison prix amazon - Accueil - Commerce
5 réponses
Ce doit être une question de jeu de caractères : il faudrait s'assurer que celui du champ soit le même que celui utilisé par la connexion à la base, et la même que celui utilisé pour la chaîne.
Hello,
Et la méthode REPLACE permet peut-être de remplacer les accents par les caractères non accentués ?
Avec un UPPER pour éviter aussi les soucis de maj/min
Et la méthode REPLACE permet peut-être de remplacer les accents par les caractères non accentués ?
Avec un UPPER pour éviter aussi les soucis de maj/min
Merci de vos réponses rapides !
Mihawk, le replace et le upper ne devrait pas avoir lieu d'être utilisé etant donner que ma chaine ne peut contenir que UN des champs de ma base (POUR SUR exactement le meme pour cause que je stock ces champs dans une liste deroulante et demande a l utilisateur d en choisir une.)
A.Nonymous, je pense effectivement que c'est une histoire de jeux de caractère, mais comme savoir lequel utilisé ?
Mihawk, le replace et le upper ne devrait pas avoir lieu d'être utilisé etant donner que ma chaine ne peut contenir que UN des champs de ma base (POUR SUR exactement le meme pour cause que je stock ces champs dans une liste deroulante et demande a l utilisateur d en choisir une.)
A.Nonymous, je pense effectivement que c'est une histoire de jeux de caractère, mais comme savoir lequel utilisé ?
C'est simple, regarde si ta base est en UTF-8 ou en ISO ; et tu utilises alors sur ta variable POST une des méthode utf8_encode() ou utf8_decode() en fonction de tes besoins.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question