afficher en tableau ou div

afficher en tableau ou div - HTML/CSS - Programmation

Marsh Posté le 21-05-2010 à 18:13:28    

Bonjour,
 
Je cherche à afficher des données issu dune base avec cette mise forme :
- affichage du titre (pupitre_FR)
- sur 1 ligne, affichage des enregistrements appartenant au pupitre_FR concerné. Mais si arrivé en bout de ligne (après 5 enregistrements), retour à la ligne pour afficher les autres enregistrements.  :pt1cable:  
 
Et là, je n'arrive pas à aller à la ligne après les 5 premiers enregistrements pour afficher le reste. J'ai essayé avec un tableau et des ses cellues limitées (width), j'ai essayé avec des div, mais rien à faire .....  :cry:  
 
Voilà mon code actuel :

Code :
  1. $select = "SELECT * FROM choristes ORDER BY nom ASC"; 
  2. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  3. $tabPupitre = array(); // tableau qui contiendra les différents pupitres et les noms associés  
  4. while($row = mysql_fetch_array($result)) {
  5.   // pour chaque enregistrement retourné, on prépare la chaine qui sera affichée  
  6.   $str = '<td width="200px">';
  7.   $str.= ''.$row['nom'].'&nbsp;'.$row['prenom'].'&nbsp;&nbsp;<br>'; 
  8.   $str.= '<img border=0 height="50" src="../images/choristes/' . $row['photo'] . '"><br>';
  9.   $str.= '<div class="chor_leg">'.$row['legende_FR'].'</div>';
  10.   $str.= '</td>';
  11.   // puis on ajoute cette chaine dans le tableau, à la suite, pour le pupitre correspondant   
  12.   $tabPupitre[$row['pupitre_FR']] .= $str; 
  13. mysql_free_result($result); 
  14. // il ne reste plus qu'à afficher le contenu de chaque champ du tableau php au bon endroit dans le tableau html :  
  15. ?>
  16. <center>
  17. <table>
  18.     <tr><u><h2>Chef(s) de cœur</h2></u></tr><p></p>
  19.     <tr><?php echo $tabPupitre['Chef de cœur']; ?></tr>
  20. </table><p></p>
  21. <table>
  22.     <tr><u><h2>Ténors1</h2></u></tr><p></p>
  23.     <tr><?php echo $tabPupitre['Ténor1']; ?></tr>
  24. </table><p></p>
  25. <table>   
  26. <tr><u><h2>Ténors2</h2></u></tr><p></p>
  27.     <tr><?php echo $tabPupitre['Ténor2']; ?></tr>
  28. </table><p></p>
  29. <table >
  30.     <tr><u><h2>Basses</h2></u></tr><p></p>
  31.     <tr rowspan="4"><?php echo $tabPupitre['Basse']; ?></tr>
  32. </table><p></p>
  33. <table>
  34.     <tr><u><h2>Barytons</h2></u></tr><p></p>
  35.     <tr><?php echo $tabPupitre['Baryton']; ?></tr>
  36. </table></center>


 
Merci pour votre aide

Reply

Marsh Posté le 21-05-2010 à 18:13:28   

Reply

Marsh Posté le 24-05-2010 à 03:27:56    

et avec un simple test modulo sur une variable d'incrémentation?
si la valeur est un multiple de 5, tu passes à la ligne


---------------
collectionneur de pâtes thermiques
Reply

Marsh Posté le 24-05-2010 à 09:43:22    

tompouss a écrit :

et avec un simple test modulo sur une variable d'incrémentation?
si la valeur est un multiple de 5, tu passes à la ligne


 
Bonjour tompouss,
 
Oui, tu as raison. C'est une des solutions que j'ai essayé !  
Boucle while, foreach, incrémentation d'une variable pour tester le nombre d'affichage et le retour éventuel à la ligne, ....
 
Mais j'y arrive pô !!!!!  :cry:  

Reply

Marsh Posté le 24-05-2010 à 13:15:03    

bah  
 
donc un simple test modulo comme ceci dans ta boucle

Code :
  1. $i=0
  2. if ($i % 5 == 0) { // on passe à la ligne}
  3. else { //on continue à afficher}


Message édité par tompouss le 24-05-2010 à 13:18:53

---------------
collectionneur de pâtes thermiques
Reply

Marsh Posté le 24-05-2010 à 15:26:40    

Et où est mon erreur ici ? Car je n'ai pas de retour à la ligne, et pas de message d'erreur ?  :pt1cable:  
 

Code :
  1. $tabPupitre = array(); // tableau qui contiendra les différents pupitres et les noms associés  
  2. $i=0;
  3. while($row = mysql_fetch_array($result))
  4. {
  5. // pour chaque enregistrement retourné, on prépare la chaine qui sera affichée  
  6. $i= $i+1;
  7. $str = '<td width="200px">';
  8. $str.= ''.$row['nom'].'&nbsp;'.$row['prenom'].'&nbsp;&nbsp;<br>';
  9. $str.= '<img border=0 height="50" src="../images/choristes/' . $row['photo'] . '"><br>';
  10. $str.= '<div class="chor1">'.$row['legende_FR'].'</div>';
  11. $str.= '</td>';
  12. // puis on ajoute cette chaine dans le tableau, à la suite, pour le pupitre correspondant  
  13. $tabPupitre[$row['pupitre_FR']] .= $str;
  14. if ($i % 5 == 0)
  15. {
  16. echo '<p>';
  17. $i=0;
  18. }
  19. }


 
 :fou:

Reply

Marsh Posté le 25-05-2010 à 05:44:04    

tu veux faire un retour à la ligne avec un P alors que tu génère du code à l'intérieur d'un tableau ?
tu réfléchi à ce que tu fais ?


---------------
Blablaté par Harko
Reply

Sujets relatifs:

Leave a Replay

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