Problème de recherche dans mysql

Montreal71
Invité n'ayant pas de compte PHPfrance

14 avr. 2008, 17:56

Bonjour,

j'ai un problème de recherche avec apostrophe sous mysql 5. Si je recherche par exemple la valeur "L'AUTRE" du champ nom de la table livres avec la requête suivante, je n'ai pas de résultat :

select.... WHERE nom LIKE 'L\'AUTRE%'

Je mets donc un addslashes sur le nom recherché pour que la requête ne plante pas.

Ce problème ne se pose pas quand le nom ne contient pas d'apostrophe

D'où vient donc ce problème ??!

Merci !!

Mammouth du PHP | 558 Messages

14 avr. 2008, 20:09

supprime les appostrophe dans ta table et dans ta recherche remplace le par un espace par ex.

Invité
Invité n'ayant pas de compte PHPfrance

14 avr. 2008, 23:54

mais enfin, je ne peux pas supprimer les apostrophes dans la table ! Les données ne seront plus valables !!

Quelqu'un a une meilleure idée ??

ViPHP
ViPHP | 4039 Messages

15 avr. 2008, 10:20

eum, c'est quoi le problême ? Avec addslashes ça marche, tu veux dire ?

C'est assez simple, il suffit d'échaper (avec addslashes) toutes tes valeurs de recherche, pour que la requête soit valide.

Pour le pourquoi, regarde ces deux chaines:
//valide:
$var = 'ceci est le texte de l\'autre';
// invalide:
$var = 'ceci est le texte de l'autre';
c'est du php, mais le principe est le même. Tu vois la différence ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.