SELECT de données avec apostrophes
Résolu/Fermé
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
-
21 mars 2017 à 15:03
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 30 mars 2017 à 01:27
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 30 mars 2017 à 01:27
A voir également:
- Remplacer apostrophe requête sql
- Remplacer disque dur par ssd - Guide
- Remplacer word - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
- Remplacer tete sur photo - Guide
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
4 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
21 mars 2017 à 16:35
21 mars 2017 à 16:35
Bonjour,
- Tu as ton souci à quel moment ? (pour faire la requête ? pour afficher le resultat ? )
- Que te retourne exactement ta requête ? (l'as tu testé en direct dans ta bdd pour voir .?? )
- A quel moment, et avec quel code exactement, as tu essayé ton str_replace ?
Merci de nous apporter toutes ces précisions.
- Tu as ton souci à quel moment ? (pour faire la requête ? pour afficher le resultat ? )
- Que te retourne exactement ta requête ? (l'as tu testé en direct dans ta bdd pour voir .?? )
- A quel moment, et avec quel code exactement, as tu essayé ton str_replace ?
Merci de nous apporter toutes ces précisions.
Utilisateur anonyme
Modifié par le père. le 21/03/2017 à 19:45
Modifié par le père. le 21/03/2017 à 19:45
Bonsoir
Attention, il existe plusieurs caractères apostrophe. Il est très possible que le texte enregistré dans la base utilise le U+2019, et que tu fasses ta recherche avec un U+0027
http://www.fileformat.info/info/unicode/char/27/index.htm
http://www.fileformat.info/info/unicode/char/2019/index.htm
Sais-tu vérifier les vrais codes des caractères que tu utilises ?
Si l'un des deux vient d'un copier-coller depuis un traitement de texte ou une page web, le cas est très possible.
Attention, il existe plusieurs caractères apostrophe. Il est très possible que le texte enregistré dans la base utilise le U+2019, et que tu fasses ta recherche avec un U+0027
http://www.fileformat.info/info/unicode/char/27/index.htm
http://www.fileformat.info/info/unicode/char/2019/index.htm
Sais-tu vérifier les vrais codes des caractères que tu utilises ?
Si l'un des deux vient d'un copier-coller depuis un traitement de texte ou une page web, le cas est très possible.
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
21 mars 2017 à 19:49
21 mars 2017 à 19:49
non, je n'y connais rien en charset d'une façon générale, ça m'a toujours pas mal rebutée, un peu comme les regex... :-D
mais en effet, à l'origine la requête sql qui m'a permis d'implémenter les centaines de lignes a été générée avec excel...
mais en effet, à l'origine la requête sql qui m'a permis d'implémenter les centaines de lignes a été générée avec excel...
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié le 24 mars 2017 à 14:51
Modifié le 24 mars 2017 à 14:51
Bonjour,
Je suis en phase avec Le Père.
Dans les phrases que tu colles, on voit bien que ce ne sont pas les mêmes caractères : dans les recherches tu as une apostrophe française (courbée) alors que dans ton dump de base tu as des apostrophes droites (celles qui sont accessibles sur un clavier standard sur la touche 4, qui ne sont pas typographiquement correctes pour écrire en Français).
Du coup, je te suggère de changer cela dans ta variable $titre :
Je suis en phase avec Le Père.
Dans les phrases que tu colles, on voit bien que ce ne sont pas les mêmes caractères : dans les recherches tu as une apostrophe française (courbée) alors que dans ton dump de base tu as des apostrophes droites (celles qui sont accessibles sur un clavier standard sur la touche 4, qui ne sont pas typographiquement correctes pour écrire en Français).
Du coup, je te suggère de changer cela dans ta variable $titre :
$titre = str_replace('’', "'", $titre);
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
>
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
24 mars 2017 à 17:35
24 mars 2017 à 17:35
c'est une bonne idée, je testerai ça, merci ! Pour le moment je suis noyée dans un autre debug plus urgent, mais je regarderai ça de plus près ! :-)
Utilisateur anonyme
21 mars 2017 à 20:25
21 mars 2017 à 20:25
Pour vérifier d'abord, peux-tu faire ta requête avec
au lieu de
et en mettant un % au lieu d'une apostrophe dans :valeur1 ?
WHERE M_FR_phrase LIKE :valeur1
au lieu de
WHERE M_FR_phrase = :valeur1
et en mettant un % au lieu d'une apostrophe dans :valeur1 ?
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
24 mars 2017 à 17:37
24 mars 2017 à 17:37
J'avais déjà fait ce test, mais ça n'avait rien donné...
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
27 mars 2017 à 12:47
27 mars 2017 à 12:47
Bonjour à tous, il y avait plusieurs bugs en parallèle du coup j'ai finalement carrément changé toutes mes requêtes. La question n'est plus d'actualité du coup vu que j'ai contourné le problème, mais je vous remercie quand même pour votre aide ! :-)
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
28 mars 2017 à 13:58
28 mars 2017 à 13:58
Tant mieux.
De façon générale, j'aime bien, dans mes scripts d'insertion et de recherche en base de donnée, remplacer systématiquement les apostrophes droites par des apostrophes françaises.
L'avantage principal à mes yeux, c'est d'enlever les apostrophes droites de la base de données, sachant qu'elles ont souvent un sens technique dont il faut se prémunir... On fait d'une pierre deux coups : ça permet de les "échapper", et ça permet d'écrire un meilleur français ;)
De façon générale, j'aime bien, dans mes scripts d'insertion et de recherche en base de donnée, remplacer systématiquement les apostrophes droites par des apostrophes françaises.
L'avantage principal à mes yeux, c'est d'enlever les apostrophes droites de la base de données, sachant qu'elles ont souvent un sens technique dont il faut se prémunir... On fait d'une pierre deux coups : ça permet de les "échapper", et ça permet d'écrire un meilleur français ;)
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
>
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
28 mars 2017 à 19:26
28 mars 2017 à 19:26
C'est une bonne idée, merci, surtout pour moi qui hais les problèmes de charset !! ;-)
Par contre comment tu fais pour choisir l'aporstrophe française ? Je ne vois pas ça sur mon clavier... ^^
Par contre comment tu fais pour choisir l'aporstrophe française ? Je ne vois pas ça sur mon clavier... ^^
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
29 mars 2017 à 09:36
29 mars 2017 à 09:36
Euh si tu hais les problèmes de charset il faut peut-être oublier l'idée... L'apostrophe française ne fait pas partie de l'ASCII étendu. Il faut s'assurer d'avoir une bonne cohérence et que tout soit en UTF8...
Sous windows : alt+0146
Sous Linux, sur ma configuration de clavier, altgr+g
Xavier
Sous windows : alt+0146
Sous Linux, sur ma configuration de clavier, altgr+g
Xavier
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
>
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
30 mars 2017 à 01:27
30 mars 2017 à 01:27
En fait je suis sous mac, mais je chercherai, au cas où... :-)
Merci pour l'info en tout cas !
Merci pour l'info en tout cas !
Modifié par jordane45 le 21/03/2017 à 16:56
EDIT : Ajout du langage dans les balises de code (pour avoir la coloration syntaxique )
Elle fonctionne parfaitement, mais quand il y a une apostrophe, ça ne trouve pas le résultat. (Notice: Undefined offset: 0 in /web/new/app/Models/Blog.php on line 487Notice: Trying to get property of non-object in /web/new/app/Models/Blog.php on line 487) la ligne 487 correspond à $res[0] -> val
La requête est ok en bdd, j'ai bien mon résultat ,pour autant que je puisse vraiment la tester pcq pr ça je fais un echo $query en remplaçant les :valeur1, :valeur2 par $title, $idcat et donc en ajoutant les apostrophes obligatoires :
21 mars 2017 à 17:05
- le echo de $query2
- Le print_r($res) (celui que tu as mis en commentaire)
Au cas où, tu peux aussi essayer de faire du addSlaches sur ton title
http://php.net/manual/fr/function.addslashes.php
21 mars 2017 à 17:18
et le print_r($res) donne Array()
Le addslashes n'a aucun effet, un echo addslashes($title) me donne "Je suis à l’écoute des besoins de mon corps" et j'ai toujours un résultat vide...
(je n'avais jamais vu qu'on pouvait indiquer le langage dans la balise de code, merci ! ;-) )
21 mars 2017 à 17:24
Sous quelle forme ? tu peux montrer ?
Ta BDD, tes pages et ta connexion PDO sont bien en UTF8 ?
Modifié par jordane45 le 21/03/2017 à 18:07
ne sort aucun résultat, par contre la requête me sort bien des résultats, dont "Je suis à l'écoute des besoins de mon corps"
Ma table et la bdd sont en utf8_general_ci, le serveur en utf8mb4_general_ci, le fichier enregistré en utf 8 mais pour la connexion PDO rien n'est précisé pour le charset