Tableau Html parcourant base SQL

Résolu/Fermé
pxone Messages postés 67 Date d'inscription samedi 6 mars 2010 Statut Membre Dernière intervention 29 décembre 2012 - 26 août 2011 à 07:14
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 26 août 2011 à 08:33
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>

A voir également:

1 réponse

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
Modifié par Mihawk le 26/08/2011 à 07:49
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
pxone Messages postés 67 Date d'inscription samedi 6 mars 2010 Statut Membre Dernière intervention 29 décembre 2012
26 août 2011 à 08:11
<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
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
26 août 2011 à 08:26
Ca doit te faire genre un tableau contenant lui-même 16 tableaux de 16 cases
0
pxone Messages postés 67 Date d'inscription samedi 6 mars 2010 Statut Membre Dernière intervention 29 décembre 2012
26 août 2011 à 08:27
Merci ca fonctionne c'est bon !!!!!!!!!
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
26 août 2011 à 08:33
Sérieusement? Avec le while? bizarre mais tant mieux !
0