zimounet Posté 10 Mai 2006 Posté 10 Mai 2006 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!
Portekoi Posté 10 Mai 2006 Posté 10 Mai 2006 Bonjour, Je n'ai pas bien compris : Si tu fais ceci : mysql_query("SELECT * FROM table WHERE champ LIKE '%".addslashes($search)."%'"); marche pas? Portekoi
The Jedi Posté 10 Mai 2006 Posté 10 Mai 2006 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.
zimounet Posté 10 Mai 2006 Auteur Posté 10 Mai 2006 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
zimounet Posté 10 Mai 2006 Auteur Posté 10 Mai 2006 attendez, j'me suis p'tet planter dans la syntax effectivement. j're plus tard vous dire (dsl :$)
zimounet Posté 11 Mai 2006 Auteur Posté 11 Mai 2006 (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é 11 Mai 2006 par Portekoi
Portekoi Posté 11 Mai 2006 Posté 11 Mai 2006 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.
The Jedi Posté 11 Mai 2006 Posté 11 Mai 2006 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).
zimounet Posté 11 Mai 2006 Auteur Posté 11 Mai 2006 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?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant