Affichage des données mysql dans un tableau html

Fermé
JDP91
Messages postés
5
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
27 novembre 2015
- 16 mai 2015 à 17:33
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
- 18 mai 2015 à 13:23
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

hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
23
Modifié par hharchi9 le 17/05/2015 à 22:42
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.
0
JDP91
Messages postés
5
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
27 novembre 2015

17 mai 2015 à 22:58
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>';
?>
0
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
23
18 mai 2015 à 13:23
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 !
0