Affichage des données mysql dans un tableau html [Fermé]

Signaler
Messages postés
5
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
27 novembre 2015
-
hharchi9
Messages postés
581
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
2 septembre 2015
-
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


1 réponse

Messages postés
581
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
2 septembre 2015
17
Bonsoir,

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.

Espérant que cela puisse vous aider,

Cordialement,

hharchi9.
JDP91
Messages postés
5
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
27 novembre 2015

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">';

$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>';
?>
hharchi9
Messages postés
581
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
2 septembre 2015
17
En effet, cette méthode est plus adaptée. Merci de la faire partager pour ceux que cela peut intéresser et bonne continuation à vous !