8792 sujets

Développement web côté serveur, CMS

bonjour à tous

je souhaite faire apparaître dans ma page tous les articles d'une catégorie, mais pas les unes sous les autres, comme je l'obtiens en utilisant les régions répétées PHP depuis Dreamweaver.
je voudrais en mettre 4 par ligne.
comment écrire le code PHP pour qu'il affiche 4 enregistrements par ligne, puis qu'il passe à la ligne suivante pour les 4 suivants et ainsi de suite pour afficher tous les produits de la catégorie ?
voici le code de base :
----
 
<!-- InstanceBeginRepeat name="cadreproduit" --><!-- InstanceBeginRepeatEntry -->
<tr>
<td height="171"></td>
<!-- InstanceBeginEditable name="produitvignette" -->
<td valign="top"><?php do { ?>
<p><?php echo $row_articles_de_la_categorie['designation']; ?></p>
<p><?php echo $row_articles_de_la_categorie['prix_ttc']; ?></p>
<p><?php echo $row_articles_de_la_categorie['description']; ?></p>
<?php } while ($row_articles_de_la_categorie = mysql_fetch_assoc($articles_de_la_categorie)); ?></td>
<!-- InstanceEndEditable -->
<td></td>
</tr>

----
quelqu'un peut il m'aider ?
d'avance merci
Modifié par Fanfan (27 May 2007 - 19:02)
Bonjour & bienvenue, fanfan.

Pourrais-tu éditer ton premier message (à l'aide du bouton "éditer" en haut à droite) et entourer ton code avec les balises prévues pour ([ code] & [ /code] sans les espaces), comme c'est demandé dans les règles du forum (que tu as lues en arrivant, bien sûr) Smiley cligne

Pour ton problème, tu pourrais utiliser le modulo, qui renvoie le reste de la division entière de deux nombres :
<tr>
   <td heigth="171">
<?php
$i = 5; // Initialisation du compteur
// Début de la boucle :
while $result = mysql_fetch_array($resultat) { 
   echo '<p>';
   echo $result['designation'];
   echo '</p><p>';
   echo $result['prix'];
   echo '</p><p>';
   echo $result['description'];
   echo '</p></td>;
   if ($i % 4 == 0) { // si le compteur est un multiple de 4, on démarre une nouvelle ligne
      echo '</tr><tr>';
   };
   echo '<td>';
   $i++; // on incrémente le compteur
}
?>
Après il faut un peu se casser la tête pour gérer les effets de bords ...

J'ai pas testé, c'est pour le principe Smiley cligne
Modifié par Thomas D. (27 May 2007 - 18:58)