Comment récupérer des données mysql dans un tableau horizontal?

Comment récupérer des données mysql dans un tableau horizontal? - PHP - Programmation

Marsh Posté le 25-07-2009 à 12:50:39    

Bonjour à tous,
 
Comment dois-je faire pour afficher les données de ma table sql dans un tableau qui évolue horizontalement?
En espérant que ce soit possible...
 
En fait, ma table contient les présences d'élèves pour un cours et je voudrais pouvoir afficher ces présences par mois, années...
Pour récupérer les données ça va, mais je ne vois pas comment je dois faire pour les afficher dans un tableau qui va évoluer horizontalement.
Par après, je voudrais imprimer ces résultats. Est-ce que je dois prévoir qqch avant?
 
Merci!

Reply

Marsh Posté le 25-07-2009 à 12:50:39   

Reply

Marsh Posté le 25-07-2009 à 15:09:22    

De quoi est composé un tableau ?
 
De balises table :
 

<table>
</table>


De lignes :
 

<table>
  <tr>
  </tr>
</table>


De colonnes :
 

<table>
  <tr>
    <td>
    </td>
  </tr>
</table>


Habituellement, tu fais autant de lignes que d'enregistrement. Il suffit de faire cette fois autant de colonnes  ;)
Le problème est qu'avec un while (mysql_fetch_assoc($resultat)) tu auras du mal à afficher plus d'une ligne par élèves, puisque la hiérarchie des tableaux est structurée tel que les colonnes soient dans les lignes.
Alors, soit tu fait dans chaque colonne un autre tableau qui fait 1 case de largeur et autant de cases que tu veux en hauteur. Simple, mais un peu lourd.
Soit tu remplis un array() en php quand tu fais ton while (mysql_fetch_assoc($resultat)). Et quand tu veux afficher ton tableau, au lieu de parcourir l'array élève par élève, tu le parcours critère par critère  ;)


Message édité par Pascal le nain le 25-07-2009 à 15:19:43
Reply

Marsh Posté le 06-09-2009 à 16:53:28    

Bonjour à tous,
je retourne dans mon problème où j'essaie d'avancer...
Pour être plus clair, voici ce que je voudrais avoir:
http://www.self-defense-hrj-namur.be/tableau.jpg
Voici ce que j'ai commencé à écrire, mais j'ai peur de vraiment partir dans le mauvais car ce n'est pas du tout ce que je veux, bien entendu.

Code :
  1. include("../../../connexion.php" ); 
  2. // recupére les 4 premiers caratéres de $saison_mois  
  3. $saison_debut  = substr($saison_mois, 0, 4);
  4. // recupére les 4 derniers caratéres de $saison_mois  
  5. $saison_fin  = substr($saison_mois, 5, 4);
  6. // création date début
  7. $date_debut = date($saison_debut."-09-01" );
  8. // création date fin
  9. $date_fin = date($saison_fin."-06-30" );
  10. // requette SQL :
  11. $query = "SELECT id_presences,activite,dates,idmembre, presence, id_membre, nom, prenom FROM presences,membres WHERE dates BETWEEN '$date_debut' AND '$date_fin' AND MONTH(dates)=$mois AND activite='Cours' AND idmembre=id_membre";
  12. $result = mysql_query($query) or die("Query failed" );
  13. while ($ligne = mysql_fetch_assoc($result)) {
  14. $date = $ligne['dates'];
  15. $prenom = $ligne['prenom'];
  16. $presence = $ligne['presence'];
  17. $nom = $ligne['nom'];
  18. echo "<table  border=\"1\" align=\"center\">\n";
  19. echo "<tr bgcolor=\"#F5CA89\">";
  20. echo "<td>";
  21. echo "$nom $prenom";
  22. echo "</td>";
  23. echo "<td>";
  24. echo "$presence";
  25. echo "</td>";
  26. }
  27. echo "</table>\n";


Merci de bien vouloir m'éclairer.

Reply

Marsh Posté le 07-09-2009 à 01:40:55    

il faut que tu fasses un while sur les TD aussi, pour générer autant de colonnes qu'il y a de jours rapatriés.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 16-01-2011 à 21:02:42    

Bonjour à tous,
 
Je déterre mon problème car je voudrais m'y remettre et, depuis le temps, je n'ai toujours pas trouvé la solution.
J'en suis toujours au même stade.
Comment peut-on faire un while sur les td? Je n'y arrive pas du tout...
Merci d'avance pour votre aide précieuse...

Reply

Marsh Posté le 17-01-2011 à 11:47:06    

Bonjour,
 
Il ne faut pas déclarer le tableau dans le while sinon il va générer un nouveau à chaque tour de boucle.
 

Code :
  1. include("../../../connexion.php" );
  2. // recupére les 4 premiers caratéres de $saison_mois   
  3. $saison_debut  = substr($saison_mois, 0, 4);
  4. // recupére les 4 derniers caratéres de $saison_mois   
  5. $saison_fin  = substr($saison_mois, 5, 4);
  6. // création date début
  7. $date_debut = date($saison_debut."-09-01" );
  8. // création date fin
  9. $date_fin = date($saison_fin."-06-30" );
  10. // requette SQL :
  11. $query = "SELECT id_presences,activite,dates,idmembre, presence, id_membre, nom, prenom FROM presences,membres WHERE dates BETWEEN '$date_debut' AND '$date_fin' AND MONTH(dates)=$mois AND activite='Cours' AND idmembre=id_membre";
  12. $result = mysql_query($query) or die("Query failed" );
  13. echo "<table  border=\"1\" align=\"center\">\n"; // A ne pas mettre dans le while sinon il va re-générer un tableau à chaque fois
  14. while ($ligne = mysql_fetch_assoc($result)) {
  15. $date = $ligne['dates'];
  16. $prenom = $ligne['prenom'];
  17. $presence = $ligne['presence'];
  18. $nom = $ligne['nom'];
  19. echo "<tr bgcolor=\"#F5CA89\">";
  20. echo "<td>";
  21. echo "$nom $prenom";
  22. echo "</td>";
  23. echo "<td>";
  24. echo "$presence";
  25. echo "</td>";
  26. }
  27. echo "</table>\n";


 
Auriez-vous un schéma de votre BDD pour que l'on puisse se rendre compte du problème ?


---------------
:o
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed