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

MySQL Discussion :

Problème de requête LIKE avec apostrophes


Sujet :

MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut Problème de requête LIKE avec apostrophes
    Bonjour,

    J'ai un petit souci MySQL.

    J'effectue une recherche dans une table afin de vérifier si le titre d'un livre est bien présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <?php 
              $q=mysql_query("SELECT categorie FROM table WHERE titre LIKE '%$title%'");
              if ($q==true) { 
              $r=mysql_fetch_array($q);
              }
              ?>
    Le problème, c'est que j'ai l'impression que si $titre comporte une apostrophe (par ex. : "La promesse de l'aube"), la fonction LIKE ne donne aucun résultat.

    Pas de problèmes par contre en ce qui concerne les accents.

    Pour info, l'interclassement comme la page HTML sont en UTF-8.

    Avez-vous une explication ?

    Merci !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Jette un oeil à cette discussion récente.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Essai avec la fonction addslashes()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $titre = addslashes($titre);

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Le problème c'est que j'utilise des données d'une table déjà existantes. Je ne peux donc utiliser addslashes pour insérer les données.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    d'ou il vient la variable $title

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    d'ou il vient la variable $title

    Elle vient de plus haut dans le code, elle est clairement identifiée.

    Elle vient d'un script qui récupère le titre d'un livre sur Amazon à partir de son ISBN.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Si je comprend bien $title est t'une variable qui contient comme chaine de caractère le nom du livre

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Oui

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Quel est ton problème a ne pas utilisé addslashes

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Je l'ajoute mais ça ne change rien du tout...

    En fait je ne comprends pas ce qu'il interprète, et comment le titre inscrit dans la base de données affiche les apostrophes.


    Et je précise que je n'ai pas de message d'erreur, juste il ne trouve pas la chaîne de caractère demandée.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Essai avec ça je crois que ca va marché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $title = str_replace("'", "''", $title)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Bon j'ai l'impression que ça marche maintenant !

    Merci de votre aide !

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

Discussions similaires

  1. problème requête "like" avec chiffre
    Par bidibou dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/02/2008, 09h44
  2. Problème de requête SQL avec DISTINCT et COUNT ?
    Par [ZiP] dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/01/2007, 17h11
  3. Problème de requête count(*) avec DB2
    Par elsodiop dans le forum DB2
    Réponses: 3
    Dernier message: 30/11/2006, 16h11
  4. Réponses: 5
    Dernier message: 10/07/2006, 12h05
  5. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15

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