Affichage des données mysql dans un tableau html

JDP91 Messages postés 7 Statut Membre -  
hharchi9 Messages postés 693 Statut Membre -
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

  1. hharchi9 Messages postés 693 Statut Membre 24
     
    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
    1. JDP91 Messages postés 7 Statut Membre
       
      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
    2. hharchi9 Messages postés 693 Statut Membre 24
       
      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