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

Langage SQL Discussion :

Moteur de recherche


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Moteur de recherche
    Bonjour, j'ai un petit problème avec mon moteur de recherche,
    j'ai une requête SQL qui va chercher dans la base de données le (ou les) mot(s) clé(s) renseigné par l'utilisateur, sauf que php me renvoi aucun résultat.

    Voici ma requête et le code qui l'affiche :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    $query = mysql_query("SELECT * FROM news, tests, guides WHERE news.titre LIKE '%$requete%' OR tests.titre LIKE '%$requete%' OR guides.titre LIKE '%$requete%'") or die (mysql_error()); 
     
    $nb_resultats = mysql_num_rows($query); 
    if($nb_resultats != 0) 
    {
    ?>
    <h3>Résultats de votre recherche.</h3>
    <?
    while($donnees = mysql_fetch_array($query)) 
    {
    if($donnees['news.categorie'] = materiel OR $donnees['news.categorie'] = accessoires OR $donnees['news.categorie'] = economie OR $donnees['news.categorie'] = le_site OR $donnees['news.categorie'] = divers){?>
     
     <a href="article.php?id=<? echo $donnees['news.id']; ?>"><? echo $donnees['news.titre']; ?></a>
    <br/><br/>
     
    <?}
    if($donnees['tests.categorie'] = test_materiel OR $donnees['tests.categorie'] = test_accessoires){?>
     
    <a href="test.php?id=<? echo $donnees['tests.id']; ?>"><? echo $donnees['tests.titre']; ?></a>
    <br/><br/>
     
    <?}
    if($donnees['guides.categorie'] = guide_reflex OR $donnees['guides.categorie'] = guide_compacts OR $donnees['guides.categorie'] = guide_bridges_hybrides OR $donnees['guides.categorie'] = guide_objectifs OR $donnees['guides.categorie'] = guide_accessoires){?>
    <a href="guide.php?id=<? echo $donnees['guides.id']; ?>"><? echo $donnees['guides.titre']; ?></a>
    <br/><br/>
     
    <?}
    } // fin de la boucle
    ?>
     
    <center><a href="rechercher.php">Faire une nouvelle recherche</a></center>
     
    <?
    } else
    { ?>
    <h3>Pas de résultats</h3>
    <?php } ?>
    Voilà, j'ai un peu dégrossi mais l'idée est là.
    La boucle me renvoi donc toujours au else et m'affiche pas de résultat, alors que je tape un mot clé qui existe bien dans ma bdd.

    D'où peu venir mon problème ?
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Je ne pense pas que le produit cartésien soit souhaitable...

    Il faut afficher la requête, il est possible que la variable php ne soit pas remplacé et que la recherche porte en fait sur $requête.
    Par ailleurs il est très nettement préférable d'utiliser la lib mysqli ou pdo afin d'utiliser les variables de liaisons :
    http://www.php.net/manual/fr/intro.mysql.php
    Cette extension est obsolète depuis PHP 5.5.0 et n'est pas recommandée pour écrire vos nouvelles lignes de code, sachant qu'elle sera supprimée dans un futur proche. A la place, soit l'extension mysqli ou PDO_MySQL devrait être utilisée.

Discussions similaires

  1. [Info]moteur de recherche full text en environnement j2ee
    Par ddams dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/11/2004, 20h39
  2. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 16h07
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 17h07
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 16h41

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