Bonjour,
Mon problème
J'ai une table mysql (table de rendez-vous) avec champs nom et date (plusieurs noms peuvent exister pour une même date, plusieurs dates peuvent exister pour un même nom.)
date#1 nom#1
date#2 nom#1
date#2 nom#2
date#2 nom#3
date#3 nom#4
date#3 nom#3
date#4 nom#1
date#4 nom#4
date#5 nom#2
je veux afficher sous forme de tableau.
date#1 date#2 date#3 date#4 date#5
nom#1 nom#1 nom#4 nom#1 nom#2
nom#2 nom#3 nom#4
nom#3
La solution est peut-être très simple, mais je n'ai pas trouvé (je débute en PHP).
J'ai fait une 1ère requête pour avoir les dates existantes de façon unique (j'ai pu les afficher comme souhaité) puis une boucle avec une requête pour chaque date pour avoir les noms correspondants à chaque date que je stocke dans une table puis je coince pour les afficher au bon endroit
Toute idée sera bienvenue
A voir également:
Afficher des données mysql en php dans un tableau html
Afficher des données mysql dans un tableau html - Meilleures réponses
Mettez les dates renvoyées par votre première requête dans un
array
puis, faites un
for
de i=0 à n (la longueur de l'array). Dans ce
for
, vous mettez une requête sql du genre :
$req = $bdd->prepare("SELECT nom FROM table WHERE date=:date");
$req->execute(array(':date' => $choix[i]));
La variable choix étant le
array
défini précédemment.
Les résultats pour chaque date sont stockés dans des
arrays
; Ensuite, un autre for vous permettra de coller les éléments au bon endroit.
Je ne prétend aucunement que cette méthode est LA méthode. Il y a sûrement plus simple ou plus esthétique mais c'est la seule qui me vienne en tête pour le moment.
Bonsoir merci pour cette réponse. J'avais eu une autre réponse sur un autre forum et je l'ai appliquée, elle fonctionne. La voici:
le résultat de ma requête étant dans $users_rdv
<?php
while ($row = mysql_fetch_assoc($users_rdv))
{
$data[$row['date']][] = $row['prenom']." ".$row['nom'];
}
echo '<table width="500" border="2" cellpadding="5" cellspacing="0">';
le résultat de ma requête étant dans $users_rdv
<?php
while ($row = mysql_fetch_assoc($users_rdv))
{
$data[$row['date']][] = $row['prenom']." ".$row['nom'];
}
echo '<table width="500" border="2" cellpadding="5" cellspacing="0">';
$nligne = 0;
echo '<tr>';
if ($event_rdv >0)
{
foreach ($data as $date=>$noms) {
$nligne = max(count($noms), $nligne);
echo '<th bgcolor="#eeeeee">' . $date . '</th>';
}
echo '</tr>';
for ($l = 0; $l < $nligne; $l++) {
echo '<tr>';
foreach ($data as $date=>$noms)
{
$value = (isset($noms[$l])) ? $noms[$l] : '';
echo '<td>' . $value . '</td>';
}
echo '</tr>';
}
echo '</table>';
?>