Tableau Html parcourant base SQL

Résolu/Fermé
Signaler
Messages postés
67
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
-
Bonjour,
Voila j'aimerais réaliser un tableau html de 4 colonnes sur 4 lignes donc 16 cellules, dans lesquelles les ID de ma base s'incrémenterais de la 1ere a la dernière cellule du tableau et la je bloque vraiment !!!!!
Merci de votre aide !!!!!!!!!!!!



<table border="2">
<?php
for($i=0; $i<=$num_rows; $i++){

$sql="SELECT * FROM contenu WHERE id=$i";
$req=mysql_query($sql);
$data=mysql_fetch_assoc($req);
echo "<tr>";
for($i1=1; $i1>0; $i1--){

for($i2=2; $i2>0; $i2--){
echo "<td>";
for($i3=1; $i3>0; $i3--){echo $data['id'];}
echo "</td>";
}
echo "</tr>";
}
}


?>
</table>

1 réponse

Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
833
Allez, on ne va pas te pondre la solution mais au moins t'aiguiller sur la bonne voie... Voici comment je vois les choses.

Tu vas avoir besoin d'une boucle en effet, qui tournera 16 fois.
Avant la boucle, tu ouvre ta balise <table> ; Après la boucle tu la refermes </table>. Ensuite si on réfléchis, tu dois créer une ligne <tr> tous les 4 pas de ta boucle : à 1, 5, 9 et 13. Tu dois fermer les </tr> aux fins de lignes, soit aux pas 4, 8, 12 et 16. Enfin tu dois ouvrir et fermer une colonne (<td></td>) à chaque pas.

Dès lors, une simple boucle en for ($i=1 ; $i<=16 ;$i++) devrait suffire. Puis utilise les modulos : quand $i%4=1 c'est que tu dois ouvrir un <tr> ; quand $i%4=0 c'est que tu est en fin de ligne, donc tu dois fermer ton </tr>.

Un truc du genre, donc, avec des paramètres pour modifier ton tableau :

<table>  
<?php  
   $hauteurTableau = 4; 
   $largeurTableau = 4; 

   for ($i=1 ; $i<=$hauteurTableau*$largeurTableau; $i++){  
      echo (($i%$largeurTableau==1) ? "<tr>" : "");  
      echo ("<td>");  
         // A toi d'insérer les données de la bonne case  
      echo("</td>");  
      echo (($i%$largeurTableau==0) ? "</tr>" : "");  
   }  
?>  
</table>

Ensuite tu n'as plus qu'à insérer tes données au bon endroit.

[Edit] : j'ai rajouté les paramètres hauteur et largeur, comme ça si tu décide de changer la forme du tableau, donc code marchera toujours :-)

Tant qu'on ne fait pas, on ne sait pas.
0
Messages postés
67
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2012

<table border="2">
<?php



while($data=mysql_fetch_assoc($req)){
$hauteurTableau = 4;
$largeurTableau = 4;
for ($i=1 ; $i<=$hauteurTableau*$largeurTableau; $i++){
echo (($i%$largeurTableau==1) ? "<tr>" : "");
echo ("<td>");
echo $data['scene_id'];
echo("</td>");
echo (($i%$largeurTableau==0) ? "</tr>" : "");
}

}
?>
</table>
J'ai essayé en rajoutant un while pour parcourir la base mais le resultat est curieux !!!
0
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
833
Ca doit te faire genre un tableau contenant lui-même 16 tableaux de 16 cases
0
Messages postés
67
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2012

Merci ca fonctionne c'est bon !!!!!!!!!
0
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
833
Sérieusement? Avec le while? bizarre mais tant mieux !
0