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 :

moteur de recherche simple [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut moteur de recherche simple
    Bonjour,

    je bloque sur un problème classique !

    je veux construire un moteur de recherche simple.

    Voici le bout du code :

    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
    22
    23
    24
    25
    26
    27
    28
     
    if(isset($_POST['titre1']))
     
            $rec = htmlentities($_POST['titre1']);
     
     
    $cnx = mysql_pconnect('localhost','root','');
     
    // e´tablit une connexion avec le serveur MySQL. Si OK, la fonction renvoie un identifiant non nul cnx
     
    mysql_select_db('qrqc-i',$cnx);
     
    // se place dans une base et renvoie vrai si OK
     
    $mots = explode(' ',$rec);//En separre lexpression en mots cles
     
            foreach($mots as $mot)
            {
     
     
     
    $req = mysql_query("SELECT * FROM afficher,doc WHERE  afficher.idqrqc = doc.idqrqc and titre LIKE '%$mot%'  ", $cnx) 
     		   or 
     		  die("Pb dans la requête : " . mysql_error($cnx));
     
     
     
            }
    le problème il m'affiche seulement des résultats contenant le dernier mot entré dans le champ nomé titre1.

    exmple :

    si je met défaut collage

    il m'affiche tt les résultats contenant le mot collage sans prendre en compte le mot défaut.

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quand tu sors du foreach $req contiendra le résultat de la dernière requête. Ce qui nous donne bien collage dans ton exemple.

    Que veux-tu au final? Le résultat de la recherche avec le mot défaut puis celle avec le mot collage? Une recherche contenant les 2 mots dans un ordre indifférent?

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut
    je veux tous les résultats contenants au moins un des mots.

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Tu peux faire un truc dans ce goût-là :
    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
    $sql='';       
     foreach($mots as $mot)
            {
    $sql.='SELECT * FROM afficher,doc 
    WHERE  afficher.idqrqc = doc.idqrqc 
    and titre LIKE "%'.$mot.'%"
     
    UNION ';
     }
    //quand la boucle est terminée, il faut enlever le dernier union
    $sql=substr($sql,0,-6);
     
     
    $req = mysql_query($sql, $cnx) 
     		   or 
     		  die("Pb dans la requête : " . mysql_error($cnx));
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre très actif

    Avatar de nicosmash
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 395
    Par défaut
    Bonjour,

    Dans les plus bref délais il faudra passer à mysqli ou PDO car mysql est devenu obsolète :
    Documentation PHP

    Ici un tutoriel sur les opérateurs de comparaison :
    Documentation mysql

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut
    Merci Dendrite.

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

Discussions similaires

  1. simple moteur de recherche
    Par rota90 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 11/12/2012, 08h20
  2. moteur de recherche SIMPLE
    Par lynnaryas dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 15/04/2012, 13h58
  3. [MySQL] Simple moteur de recherche qui retourne aucun résultat si plus de 1 mot clef
    Par yule dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2010, 20h17
  4. [SQL] Moteur de recherche ultra simple ?
    Par Jiraiya42 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 12/10/2006, 18h03
  5. [MySQL] Créer un moteur de recherche simple ?
    Par eXe|xTn dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2006, 00h09

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