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 :

Problème de jointure et affichage de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut Problème de jointure et affichage de données
    Bonjour,

    j'ai crée 2 tables dans mysql :
    travaux(idTravaux,nomTravaux,#FK_idCatTravaux)
    cattravaux(idCatTravaux,nomCatTravaux)
    Je voudrais donc afficher dans une page PHP les catégories de travaux ainsi que tous les travaux appartenant a cette catégorie.

    Pour ce faire j'ai testé plusieurs requete et je suis bloqué ...

    dernier test :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM travaux WHERE FK_idCatTravaux = (SELECT idCatTravaux FROM cattravaux)

    cette requete m'affiche l'erreur suivante :
    Subquery returns more than 1 row
    Merci de bien vouloir m'éclairer sur le sujet

  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
    avec IN
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM travaux WHERE FK_idCatTravaux IN (SELECT idCatTravaux FROM cattravaux)
    ou une jointure si tu recupères tout les idCatTravaux
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM travaux JOIN  cattravaux ON FK_idCatTravaux = idCatTravaux
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut
    Merci

    Et comment je doit faire pour afficher chaque catégorie avec dedans chaque travaux ?

    j'arrive à afficher chaque travaux mais pas sa catégorie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = mysql_query('SELECT * FROM travaux WHERE FK_idCatTravaux IN (SELECT idCatTravaux FROM cattravaux)')or die(mysql_error());
     
    while($data = mysql_fetch_assoc($sql)){
    echo '<ul>';
    echo '<li>'.$data["nomTravaux"].'</li>';
    echo '</ul>';
    }

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut
    j'ai trouvé la solution :

    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
    $sql = mysql_query('SELECT * FROM travaux,cattravaux WHERE FK_idCatTravaux=idCatTravaux') or die(mysql_error());
        $cat = ""; // catégorie courante
        $cpt = 0; // compteur de catégories
        echo "<ul>";
     
        while($data = mysql_fetch_assoc($sql)){
           if($cat <> $data['nomCatTravaux']) { // on change de catégorie ou il s'agit de la première catég.
              if($cpt == 0) { // il s'agit de la première catégorie
                 echo "<li><h4>".$data['nomCatTravaux']." :</h4>";   // on affiche la 1ère catégorie
              }
              else {
                 echo "</ul></li><li><h4>".$data['nomCatTravaux']." :</h4>";   // on ferme la liste de la catégorie précédente et on affiche la nouvelle catégorie
              }
     
              echo "<ul><li>".$data['nomTravaux']."</li>"; // on affiche le premier travail de la catégorie courante
     
              $cat = $data['nomCatTravaux']; // on met à jour la catégorie courante
              $cpt++; // on met à jour le compteur
           } /// fin if
           else { // on est toujours dans la même catégorie
              echo "<li>".$data['nomTravaux']."</li>"; //on affiche le nom du travail
           } // fin else
        } // fin while
         echo "</ul>";

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

Discussions similaires

  1. Problème de récupération et affichage des données
    Par franco9 dans le forum Struts 1
    Réponses: 0
    Dernier message: 17/08/2012, 13h32
  2. Problème de jointure pour affichage "speciale"
    Par webjeux dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/06/2006, 12h23
  3. Réponses: 3
    Dernier message: 11/01/2006, 17h44
  4. problème d'affichage de données
    Par geof_leouf dans le forum Access
    Réponses: 6
    Dernier message: 11/10/2005, 09h23
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

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