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

Requêtes MySQL Discussion :

count et join de deux tables


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut count et join de deux tables
    Bonjour ,

    Voila , je débute avec php et mysql et je suis entrain de chercher la bonne requête qui peut me donner ce résultat :

    Résultat a afficher :

    ---------------------------------------
    Membre | Rouge | Vert | Bleu | Noir
    Toto1 .................3.........0........0......0
    Toto2..................0.........0........0......0
    Toto3..................0.........0........2......0
    Toto4..................0.........1........0......0
    Toto5..................0.........0........0......0
    Toto6..................0.........0........0......0
    Toto7..................0.........1........0......1

    ----------------------------------------
    Je dois afficher le nombre de chaque couleur que le membre a choisit .

    Table membres
    ID Nom Age
    -- --------- --------
    1.....Toto1.......17
    2.....Toto2...... 12
    3.....Toto3...... 11
    4.....Toto4...... 22
    5.....Toto5...... 19
    6.....Toto6...... 15
    7.....Toto7...... 16


    Table choix
    Couleur membre_ID
    --------- ----------
    Rouge.............1
    Vert................4
    Bleu................3
    Rouge.............1
    Noir.................7
    Bleu................3
    Rouge.............1
    Vert................7
    D'ou vient couleur ?
    Le membre choisi une couleur d'une liste déroulante , quand il fait un submit :
    La couleur choisis sera inscrite dans la table choix avec l'id du membre ...

    Pour l'instant avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $query1 = mysql_query("SELECT  count(couleur) , couleur  FROM choix GROUP BY couleur");
     while( $var = mysql_fetch_array($query1) ) 
     { 
        echo $var['couleur'] . "  : " . $var['count(couleur)']  ; 
        echo "<br/>" ; 
      }
          echo "<br/>" ;
    Me donne :
    rouge : 3
    Vert : 2
    Bleu : 2
    noir : 1

    avec cette requête , j'ai pu juste afficher les noms pas plus ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $query2 = mysql_query("SELECT distinct(membres.nom) , membres.ID , count(choix.couleur) FROM membres LEFT JOIN choix ON (membres.ID = choix.membre_ID) GROUP by membreas.Nom ") ;
    echo $data['name']
     
    while ($data = mysql_fetch_array($query2)) 
    {
    echo $data['nom'] . " -> " . $data['count(couleur'] ;
    }
    Me donne :
    Toto1 ->
    Toto3 ->
    Toto4 ->Toto7->
    J'ai vraiment lu des articles sur internet mais je parviens pas encore !!
    Un aide sera bien apprécié
    Merci d'avance ,
    CV.


    Je pense que je dois utiliser des sous requêtes !

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Enfin j'ai trouvé la solution , pour ceux qui sont intéressés :
    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m.nom AS Membre,
    ifnull( sum(c.couleur='Rouge'), 0 ) AS Rouge,
    ifnull( sum(c.couleur='Vert'), 0 ) AS Vert,
    ifnull( sum(c.couleur='Bleu'), 0 ) AS Bleu,
    ifnull( sum(c.couleur='Noir'), 0 ) AS Noir
    FROM membres m
    LEFT JOIN choix c ON c.membre_id = m.id
    GROUP BY m.nom

    Affichage du tableau en php :
    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
    echo'<table>'; 
    echo'<tbody>' ; 
    echo'<tr>' ; 
    echo '<td >';echo "Nom" ;echo'</td>'; 
    echo '<td  >';echo "Rouge" ;echo'</td>'; 
    echo '<td  >';echo "Vert" ;echo'</td>'; 
    echo '<td>';echo "Bleu" ;echo'</td>'; 
    echo '<td >';echo "Noir" ;echo'</td>'; 
    echo'</tr>'; 
    while ($data = mysql_fetch_array($query2)) 
    {
    echo'<tr class="mainTable" >' ; 
    echo '<td >';echo $data['nom'] ;echo'</td>'; 
    $i++ ; 
    echo '<td >'; echo  $data[Rouge] ;echo'</td>'; 
    echo '<td>'; echo  $data[Vert] ;echo'</td>'; 
    echo '<td>'; echo  $data[Bleu] ;echo'</td>'; 
    echo '<td>'; echo  $data[Noir];echo'</td>'; 
    echo'</tr>'; 
    }
    echo'</tbody>'; 
    echo'</table>' ;
    Resultat :
    Membre | Rouge | Vert | Bleu | Noir
    Toto1 .................3.........0........0......0
    Toto2..................0.........0........0......0
    Toto3..................0.........0........2......0
    Toto4..................0.........1........0......0
    Toto5..................0.........0........0......0
    Toto6..................0.........0........0......0
    Toto7..................0.........1........0......1
    Bonne soirée .

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

Discussions similaires

  1. [MySQL-5.0] Join entre deux tables
    Par slig_80 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/04/2013, 16h16
  2. join entre deux tables
    Par nour111 dans le forum SQL
    Réponses: 13
    Dernier message: 21/01/2011, 11h33
  3. left join sur deux tables !
    Par cLaSic dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/04/2009, 09h57
  4. Inner Join entre deux tables SQL avec VB6
    Par Astragale dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2009, 19h35
  5. COUNT/JOIN sur deux tables
    Par rozwel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/08/2008, 17h27

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