par
zazzou » 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 :
- 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
C'est à dire :
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
C'est à dire :
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
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 :
[list]Première ligne : les numéros de rencontre[/list]
[list]Première colonne : les pseudos[/list]
[list]Et a l'intérieur : si les pseudos sont présents ou absents pour chacune des rencontres[/list]
C'est à dire :
[img]http://zupimages.net/viewer.php?id=19/27/2l92.png[/img]
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 :
[list]Première ligne : les numéros de rencontre[/list]
[list]Première colonne : les pseudos[/list]
[list]Et a l'intérieur : les présences et absences de TOUS les pseudos sur chaque ligne et non pas PAR pseudos[/list]
C'est à dire :
[img]http://zupimages.net/viewer.php?id=19/27/b170.png[/img]
http://zupimages.net/viewer.php?id=19/27/b170.png
Le code :
[PHP]
<?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
?>
[/PHP]
merci pour votre aide