Boucles foreach imbriquées
Posté : 03 juil. 2019, 14:47
Bonjour,
Je récupére des données dans une base MySQL et j'aimerai les afficher sous la forme d'un tableau mais cela ne marche pas comme je veux.
Je souhaiterais arriver à un tableau avec :

http://zupimages.net/viewer.php?id=19/27/2l92.png
Avec le code ci-ap je n'arrive pas à obtenir cela exactement. J'arrive à obtenir :

http://zupimages.net/viewer.php?id=19/27/b170.png
Le code :
Je récupére des données dans une base MySQL et j'aimerai les afficher sous la forme d'un tableau mais cela ne marche pas comme je veux.
Je souhaiterais arriver à un tableau avec :
- Première ligne : les numéros de rencontre
- Première colonne : les pseudos
- Et a l'intérieur : si les pseudos sont présents ou absents pour chacune des rencontres

http://zupimages.net/viewer.php?id=19/27/2l92.png
Avec le code ci-ap je n'arrive pas à obtenir cela exactement. J'arrive à obtenir :
- Première ligne : les numéros de rencontre
- Première colonne : les pseudos
- Et a l'intérieur : les présences et absences de TOUS les pseudos sur chaque ligne et non pas PAR pseudos

http://zupimages.net/viewer.php?id=19/27/b170.png
Le code :
<?php
if ($_SESSION['id_user'] == $_GET['user'])
{
$nom_team = $_SESSION['equipe'];
$presence = $bdd->prepare('
SELECT
mm.pseudo,
m.id,
mp.psence
FROM
matchs m
INNER JOIN
matchs_presence mp ON m.id = mp.id_match
INNER 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)
{
foreach ($value as $valeur => $elements)
{
echo ' <td>' . $elements . '</td>';
}
}
echo '</tr>';
}
echo '</table></div>';
}//fin if user
?>
merci pour votre aide