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 :

Requête de recherche avec jointure dans une catégorie précise [MySQL]


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
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut Requête de recherche avec jointure dans une catégorie précise
    salut a tous je revien avec un nouveau probleme et tjs dan le meme projet infinissable

    j'essai de faire une fonction recherche pour mon ptit forum mai je blok

    j'ai un formulaire avec un champ pour le mot qu'on recherche et un menu deroulan pour choisir le forum dan lequel on recherche ce mot mai avec la requette que j'ai fai sa me donne bien un resultat mai elle prend pas en conte le menu deroulan c'est a dir le forum dan lequel on souhaite effectuer la recherche elle me sort tous les forum ou se trouve le mot que l'on recherche

    voici la requette et svp dite moi ou sa cloche merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql=mysql_query("SELECT nom_forum,id_forum,im_for,id_post_titre,id_post_for,nom_sujet,id_titre_sujet,post_txt	
     
    				 FROM  forum
    				 LEFT JOIN titre_sujet ON (id_suj_for=id_forum)
    			     LEFT JOIN post ON (id_titre_sujet=id_post_titre)
     
    				 WHERE id_forum='".$_GET['f']."'  
    				 AND  nom_sujet LIKE '%".$_GET['recherche']."%' OR 
    				 post_txt LIKE '%".$_GET['recherche']."%' OR 
    				 nom_forum LIKE '%".$_GET['recherche']."%'")or die (mysql_error());

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il te faut des parentheses : c'est id_forum = xxxx ET (au moins l'un des trois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     WHERE id_forum='".$_GET['f']."'  
    				 AND 
    (
    nom_sujet LIKE '%".$_GET['recherche']."%' OR 
     post_txt LIKE '%".$_GET['recherche']."%' OR 
     nom_forum LIKE '%".$_GET['recherche']."%'"
    )
    )
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    merci sabotage pour la reponse effectivement sa marche mai il y a un probleme

    c'est que sa m'affiche qu'un resultat j'ai tester avec le mot "salut" qui se trouve dan deux titre de sujet il m'en affiche que un

    et quand il n'y a pas de resultat sa m'affiche cette ligne :


    Warning: Invalid argument supplied for foreach() in D:\wamp\www\forum\recherche.php on line 149

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la ligne 149-----> <?php foreach($forums as $forum=>$titres){?>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 102
    Par défaut
    tu peux faire ça si j'ai bien compris
    <?php
    if(empty($forum))
    {echo "il n'y a pas de resultat";}
    else
    {
    foreach($forums as $forum=>$titres)
    {}
    }

    ?>

    mais je dis ça comme ça je ne sais pas si ça marche parce que peut etre
    mysql_fetch_array renvoie un resultat même s'il n'y a pas de resultat je sais pas

    et un like c'est pas lent si l'on a beaucoup d'information dans une BDD ?

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    merci lassoya sa m'affiche plus le message d'erreur


    parcontre reste le probleme de l'affichage que d'un resultat a chaque fois alor qu'il devrai y en avoir 2

  6. #6
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Peus tu donner les deux résultats pour voir ? merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/11/2014, 18h39
  2. Recherche avec décimales dans une tcxgrid
    Par Jik70 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/06/2013, 17h24
  3. Requête de recherche de réservation dans une période
    Par niou142 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2010, 11h54
  4. Remplacer une jointure dans une requête DELETE
    Par lorant dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/11/2006, 19h46
  5. Plusieurs jointures dans une requête sql
    Par Pero dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 20h59

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