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

PHP & Base de données Discussion :

Savoir si le texte extrait de la BDD est contenu dans une variable ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Par défaut Savoir si le texte extrait de la BDD est contenu dans une variable ?
    Bonjour,

    J'ai le problème suivant :

    je voudrais comparer le texte récupéré dans une BDD à une variable. Pour le moment, j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $q=mysql_query("SELECT categorie FROM ebooks_LH WHERE titre LIKE \"%$titre%\"") or die (mysql_error());
    Mais étant donné que la variable $titre est en général une version "allongée" de ce qui se trouve dans "titre" de la BDD (par ex. pour le titre d'un livre : "Les aventures de Tintin et Milou" au lieu de "Tintin et Milou"), comment faire pour qu'il prenne en compte toutes les occurrences de titre au sein de la variable $titre ?

    Merci !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Il suffit d'inverser le WHERE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE '$titre' LIKE '%' || titre || '%'
    En SQL, les valeurs textuelles s'écrivent entre apostrophes, pas entre guillemets
    La double barre verticale est l'opérateur de concaténation.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Par défaut
    Merci.

    Par contre ça ne marche toujours pas, je me demande si cela ne vient pas d'une recherche case sensitive ?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Met ta requête dans une variable et fais-en un echo avant de l'envoyer au serveur pour voir son texte exact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $requete = "
    SELECT categorie 
    FROM ebooks_LH 
    WHERE '$titre' LIKE '%' || titre || '%'
    ";
    echo '<br />'.$requete;
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Par défaut
    ok il affiche bien la variable $title comme il faut
    du coup je ne vois pas d'où vient le problème, en sachant que si $title et title sont identiques, ça marche bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT categorie FROM ebooks_LH WHERE 'Naruto, Tome 45 : Konoha, théâtre de guerre !!' LIKE '%' || titre || '%

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Et qu'y a t-il comme données selon toi correspondantes dans la colonne titre ?

    Je viens de faire un petit test. Il semble que MySQL n'aime pas l'opérateur de concaténation normalisé || !

    Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE '$titre' LIKE CONCAT('%', titre, '%')
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [Batch] Savoir si un mot est contenu dans une variable
    Par masiuxus dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 31/10/2010, 13h57
  2. Réponses: 6
    Dernier message: 28/04/2009, 22h15
  3. Tronquer le texte contenu dans une variable object ?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/06/2008, 15h08
  4. Réponses: 18
    Dernier message: 27/10/2006, 14h15
  5. [VBA-E] Savoir si une cellule est contenue dans une plage
    Par psych0o0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2006, 14h12

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