Aller au contenu

Recherche dans mysql avec like + chaine avec quote


zimounet

Sujets conseillés

Salut tout le monde,

Voila, j'ai une requete de ce type:

mysql_query("SELECT * FROM table WHERE champ LIKE '%$search%'");

$search est == aujourd\'hui , valeur présente dans l'un des enregistrements de la table dans le champ "champ", je cherche donc aujourd\'hui

mais mysql ne me retourne rien!

Comment faire :(

Il s'agit d'un champ de type varchar.

Merci de votre aide!

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je n'ai pas bien compris :

Si tu fais ceci :

mysql_query("SELECT * FROM table WHERE champ LIKE '%".addslashes($search)."%'");

marche pas?

Portekoi

Lien vers le commentaire
Partager sur d’autres sites

Si le caractère ' est encodé dans la base ça va poser soucis. Tu peux donner le contenu (copier/coller) du "champ" contenant "aujourd'hui" ? Avec un peu de bol tu comprendras même tout seul pourquoi ça ne retourne pas de ligne.

Lien vers le commentaire
Partager sur d’autres sites

salut a tous, et merci de votre aide!

le champ mysql content "aujourd'hui", contient: "aujourd\'hui"

l'apostrophe n'est donc apparement pas encodé...

Donc quand je fais ma requete, en reprenant l'exemple de portekoi, $search à pour valeur "aujourd\'hui", et pas "aujourd'hui"

Ca me prend grave la tete ce truc

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Alors je viens de trouver le probleme, il faut échapper les caractères deux fois!

Donc pour rechercher "aujourd\'hui" qui devra retourner "ajourd\'hui"

Il faut faire la requete sur "ajourd\\\'hui"

Phrase Inutile

Un EXCELLENT tuto sur ces guillemet, doubles guillemets, avec php et avec les languages sql: http://frederic.bouchery.free.fr/?2005/02/...rophes-magiques

Modifié par Portekoi
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Si tu dois échapper deux fois les ', c'est que tu dois forcément faire de même quand tu les insères.

Insertion => Addslashes

Récupération => Stripslashes

Autrement, tu t'es certainement planté quelque part. :)

Portekoi

PS : Merci d'éviter les phrases inutiles.

Lien vers le commentaire
Partager sur d’autres sites

aaah misère ^^ tu utilisais les magic_quotes.

Les solutions données plus haut faisaient comme si elles étaient désactivées (et il faudra à terme faire en sorte que cette directive le soit).

Lien vers le commentaire
Partager sur d’autres sites

oui, mais je m'y suis toujours embrouillé avec ces quotes, j'ai presque pigé l'ensemble du truc, mais j'me fais encore souvent avoir...

donc, c'est les magic quotes de php qui sont activé et qui faudrai pas? c'est ça?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...