colonnes dynamiques
Posté : 03 juin 2009, 09:13
Bonjour,
j'essaie de créer un tableau de 2 colonnes et 2 lignes, de façon à avoir sur une page 4 articles.
Voici le code utilisé :
Que faire ? Merci pour votre aide.
j'essaie de créer un tableau de 2 colonnes et 2 lignes, de façon à avoir sur une page 4 articles.
Voici le code utilisé :
<?php
$nbCols = 2; // nombre de colonnes du tableau
$cpt = 0; // compteur d'éléments
?>
<table>
<tr>
<th style="width:<?php echo round(100/$nbCols);?>%;"></th>
<th style="width:<?php echo round(100/$nbCols);?>%;"></th>
</tr> <?php
$table = "baskets";
$sql = "SELECT * FROM " . $table. " where validation=1 ";
$res = mysql_query($sql);
$nb = mysql_num_rows($res);
$i = 0;
while ($i < $nb)
{
while ($row=mysql_fetch_assoc($rs)) { // parcours des résultats
// début d'une ligne
if ($cpt%$nbCols==0) // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ...
echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne
// On place chaque élément dans une cellule du tableau
echo '<td>';
echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>'.mysql_result($res, $i, "nom").'</b></font><br />';
echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" > '.mysql_result($res, $i, "presentation").'</font><br />';
echo '<a href="http://'.mysql_result($res, $i, "photo").'" target="_blank"><img src="http://'.mysql_result($res, $i, "photo").'" border="0" width="220"/></a><br />';
echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" >'.mysql_result($res, $i, "prix").'</font><br />';
echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" >'.mysql_result($res, $i, "suite").'</font><br />';
echo '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" >'.mysql_result($res, $i, "paypal").'</font><br />';
// affichage de tout ce qu'on veut dans la cellule
echo '</td>';
// fin d'une ligne
if ($cpt%$nbCols==($nbCols-1)) // on divise le nb d'élément par le nb de colonnes. Si le reste est de ($nbCols-1) ...
echo '</tr>'; // ..., on est sur le dernier élément d'une ligne
$cpt++; // on incrémente le compteur pour savoir où on en est
}
// Au cas où ...
if ($cpt!=0 && $cpt%$nbCols!=0) { // S'il n'y a pas eu assez de cellules dans la boucle pour finir la ligne ...
echo '<td colspan="'.($nbCols - ($cpt%$nbCols) ).'"> </td>'; // ... on complète avec une cellule vide de la bonne taille...
echo '</tr>'; // ... et on ferme la ligne
$i++;
}
?></table>
Tel quel ça ne fonctionne pas. Apparemment while ($i < $nb) est de trop. Mais si je l'enlève, j'ai une erreur pour la ligne while ($row=mysql_fetch_assoc($rs))Que faire ? Merci pour votre aide.