Bonjour,

j'aimerai pouvoir afficher un tableau avec des données issues de plusieurs tables MySQL. Je voudrais afficher une première ligne avec la liste des rencontres, une première colonne avec les pseudos et l'intérieur du tableau remplit avec les présences ou non.

J'aimerai donc obtenir un tableau comme ceci :
Rencontre 1221 Rencontre 1222 Rencontre 1223 Rencontre 1224 Rencontre 1225 Rencontre 1226 Rencontre 1227 Rencontre 1228 Rencontre 1229 Rencontre 1230
Pseudo 1 OK OK ABS OK OK NR NR NR NR NR
Pseudo 2 ABS ABS ABS NR NR NR NR NR NR NR
Pseudo 3 OK NR NR NR NR NR NR NR NR NR
Pseudo 4 NR NR NR NR NR NR NR NR NR NR


Or, avec le code ci-après, j'obtiens un tableau comme cela :
Rencontre 1221 Rencontre 1222 Rencontre 1223 Rencontre 1224 Rencontre 1225 Rencontre 1226 Rencontre 1227 Rencontre 1228 Rencontre 1229 Rencontre 1230
Pseudo 1 OK OK ABS OK OK NR NR NR NR NR ABS ABS ABS NR NR NR NR NR NR NR OK NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR
Pseudo 2 OK OK ABS OK OK NR NR NR NR NR ABS ABS ABS NR NR NR NR NR NR NR OK NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR
Pseudo 3 OK OK ABS OK OK NR NR NR NR NR ABS ABS ABS NR NR NR NR NR NR NR OK NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR
Pseudo 4 OK OK ABS OK OK NR NR NR NR NR ABS ABS ABS NR NR NR NR NR NR NR OK NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR NR

Si on regarde bien, on a les présences du pseudo 1 qui sont sur les premières colonnes puis à suivre les présences du pseudo2 et pseudo3 et pseudo4 et ainsi de suite. Et lorsqu'on change de ligne, cela se répète.

Le 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
    if ($_SESSION['id_user'] == $_GET['user'])
    {
        $nom_team = $_SESSION['equipe'];
 
        $presence = $bdd->prepare('
        SELECT
            mm.pseudo,
            m.id,
            mp.psence
        FROM
            matchs m
        LEFT JOIN
            matchs_presence mp ON m.id = mp.id_match
        LEFT JOIN
            matchs_membres mm ON mm.id = mp.id_utilisateur
        WHERE
            mm.id_equipe = ?
        ');
 
        $presence ->execute(array($nom_team));
 
        //var_dump($presence);
 
 
        //requete pour avoir les pseudos
        $requete_prenoms = $bdd->prepare('SELECT pseudo FROM matchs_membres WHERE id_equipe = ?');
        $requete_prenoms ->execute(array($nom_team));
        $donnees_prenoms = $requete_prenoms->fetchAll(PDO::FETCH_ASSOC);   
 
        //requete pour avoir les rencontres
        //$requete_rencontres = $bdd->prepare('SELECT * FROM matchs WHERE id_equipe = ? AND datematch > CURDATE() ');
        $requete_rencontres = $bdd->prepare('SELECT * FROM matchs WHERE id_equipe = ? ');
        $requete_rencontres ->execute(array($nom_team));
        $donnees_rencontres = $requete_rencontres->fetchAll(PDO::FETCH_ASSOC);
 
 
        $tableau = array();
 
        foreach($presence as $donnees)
        {
            if (!isset($tableau[$donnees['pseudo']]))
            {
                $tableau[$donnees['pseudo']] = array();
            }
            $tableau[$donnees['pseudo']][$donnees['id']] = $donnees['psence'];
        }
 
        /*echo '<pre>';
        var_dump($tableau);
        echo '</pre>';*/
 
        //partie affichage du tableau
            echo '
            <div class="table-responsive">         
                <table class="table">
                        <tr>
                    <td></td>';
 
            //la première ligne contient la liste des rencontres
            foreach($donnees_rencontres as $rencontre)
            {
                echo '<td>Rencontre '.$rencontre['id'].'</td>';
            }   
            echo '</tr>';
 
 
            //la première col contient la liste des pseudos
            foreach($donnees_prenoms as $prenom)
            {
                echo '<tr><td>'.$prenom['pseudo'].'</td>';
 
                foreach ($tableau as $key => $value)
                {
                  //echo '<td>'.$key . ': <br />'; //key affiche les pseudos
                    foreach ($value as $valeur => $elements)
                    {
                        echo ' <td>' . $elements . '</td>'; // affiche l'id du rencontre ($valeur) et la présence ($elements)
                     }
 
                }
                echo '</tr>';
            }       
            echo '</table></div>';
 
 
 
    }//fin if user
?>