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 :

Base sql recherche sur plusieurs mots clés à partir d'un formulaire


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
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut Base sql recherche sur plusieurs mots clés à partir d'un formulaire
    Bonjour
    J'ai un formulaire sur lequel je saisis le mot à rechercher. Cela fonctionne.
    Si je tape Livre cela fonctionne
    Si je tape Revue également.
    Mais je voudrais avoir les champs contenant Livre ET Revue ou Livre OU Revue.
    J'ai essayé pas mas de combinaisons du type Livre "AND" Revue mais sans résultat.
    Quelqu'un connaitrait il une solution ?
    Par avance merci
    Jean-Claude

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    Bonjour,

    Avez-vous essayé une requête comme celle-là ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from tableName where colonne1=motRecherche or colonne2=motRecherche

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut
    Merci pour votre réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM $tablebib WHERE auteur LIKE '%$recherche%' OR titre LIKE '%$recherche%' ORDER BY auteur";
    Il n'y a qu'une case pour la saisie de la recherche
    Cordialement
    jclaude

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    Bonjour,
    Normalement ta requête est correcte et devrait te remonter les lignes ayant le titre et/ou l'auteur contenant le mot recherché, parce que lorsque les deux colonnes contient le mot recherché la condition avec or est toujours vraie.

    Attention aussi aux injections SQL, il faut préparer la requête ou utiliser mysqli_real_escape_string pour la sécuriser.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut
    Oui la requete fonctionne.
    J'ai un titre qui s'appelle : La vérité sur le grand blocus.
    Si je tape vérité il sort, si je tape blocus aussi.
    Je voudrais qu'en tapant vérité et blocus il sorte également. J'ai vu des bases où cela fonctionne en mettant "AND" ou "OR" ou "&" entre les 2 mots.
    Merci
    cordialement
    Jean-Claude

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 694
    Par défaut
    pour utiliser des mots clés dans le champs de recherche, il faut analyser la chaine pour la décomposer en utilisant éventuellement une grammaire.
    une autre solution serait de rajouter un champ "titre et contenu" / "titre ou contenu".

Discussions similaires

  1. [AC-2007] Recherche sur plusieurs mots clés fonction ET
    Par Kromai dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/06/2011, 09h21
  2. [MySQL] Recherche sur plusieurs mots clés
    Par loupsolitaire dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/10/2008, 17h48
  3. Recherche sur plusieurs mots-clés
    Par Freedolphin dans le forum Installation
    Réponses: 3
    Dernier message: 10/12/2007, 02h11
  4. Moteur de recherche et plusieurs mots clés
    Par jack1234 dans le forum Langage
    Réponses: 13
    Dernier message: 14/12/2005, 10h29
  5. Réponses: 6
    Dernier message: 04/11/2005, 17h09

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