IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

opérateur LIKE et apostrophe


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut opérateur LIKE et apostrophe
    Bonjour,

    j'ai cherché sur le web et je n'ai pas trouvé la réponse que je souhaitais, aussi je vous soumet ma question:

    j'ai un champ "role" dans une table "gest_roles" contenant l'enregistrement : siege dans l\'organisation

    lorsque je fais la requete (via phpmyadmin)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select role FROM gest_roles where role LIKE "%\'or%",
    il me trouve l'enregistrement

    Par contre si je fais la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select role FROM gest_roles where role LIKE "%l\'or%",
    il ne trouve rien

    (la différence se trouve dans le %l\'or% e le %\'or% (un l en plus pour la recherche)

    Je ne comprends pas...

    Merci de votre aide.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    pour moi, pas de soucis dans ta requête
    peux tu nous donner le create de ta table ainsi que les requêtes d'insertion pour reproduire le problème?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Biensur,

    voici les données exportees de phpmyadmin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    -- 
    -- Structure de la table `gest_roles`
    -- 
     
    CREATE TABLE `gest_roles` (
      `id` bigint(11) NOT NULL auto_increment,
      `role` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=37 ;
     
    -- 
    -- Contenu de la table `gest_roles`
    -- 
     
    INSERT INTO `gest_roles` (`id`, `role`) VALUES 
    (26, 'représentant Clerco'),
    (35, 'siège dans l\\''organisation'),
    (36, 'Représentante du Président'),
    (1, 'titulaire ( suppléant '),
    (2, ' suppléant (titulaire ');
    Dans phpmyadmin, l'affichage est bien l\'organisation et non l\\''organisation


    et voici comment est faite l'insertion (fichier php, $_POST['new'] est un champ input type text):
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST['new'] = addslashes($_POST['new']);
    $requete_new = "INSERT INTO gest_roles (role) VALUES('".$_POST['new']."')";

    Merci de ton aide

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    je ne comprends pas pourquoi tu cherches à mettre "l'\organisation" dans ta table et non pas "l'organisation"

    dans tous les cas, si le '\' y est, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select role FROM gest_roles where role LIKE "%l\\'or%

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ta requete dans phpmyadmin ne retourne aucun enregistrement (j'ai fermé les doubles quotes pour executer la requete).

    Je passe par addslashes pour éviter des injections SQL depuis mon formulaire de saisie.

    J'ai beau chercher, je sèche....

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par Cybher Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select role FROM gest_roles where role LIKE "%l\\'or%
    Il faut peut être aussi échapper l'apostrophe
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    oui, logique a priori... mais non, toujours pas de résultat.

    merci de cette aide.

  8. #8
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    allez, on passe à 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT role FROM gest_roles WHERE role LIKE "%l\\\\'or%"


    (mais j'ai pas compris pourquoi il fallait en mettre autant )

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bigre, ça marche !!

    Mais qu'elle est la logique ?

    Merci beaucoup à vous deux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Apostrophes et guillemets - opérateur LIKE
    Par rifflet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/10/2008, 19h49
  2. pb requête delete/update avec opérateur like, connexion ADO
    Par jerome666 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/02/2006, 16h47
  3. ParamByName et opérateur LIKE (IBQuery et IBStoredProc)
    Par Papino dans le forum Bases de données
    Réponses: 5
    Dernier message: 02/01/2006, 17h34
  4. Opérateur Like
    Par clems34 dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 26/08/2005, 16h22
  5. Opérateur like
    Par Troopers dans le forum ASP
    Réponses: 3
    Dernier message: 15/09/2003, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo