Problème affichage requete PHP

WRInaute occasionnel
Bonjour,

J'ai un problème lors de l'affichage d'une requête.

$result = mysql_query("SELECT * FROM conservation WHERE categorie=364 ORDER BY titre");
if (!$result) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
echo '<table><tr>';
while ($row = mysql_fetch_assoc($result)) {
extract($row);
if( $i == 3 ) {
$i = 1;
echo '</tr><tr>';
}
echo '<td><div class="top"><p><a href="article3.php?id='.$id.'" class="white">'.$titre2.'</a></p></div>
<a href="article3.php?id='.$id.'">'.$image2.'</a><p class="texte">'.$intro.'</p></td>';
$i++;
}
mysql_close($link);
echo '</tr></table>';

Sur la première ligne, il m'affiche bien les 3 colonnes mais dans toutes les suivantes, il ne m'en affiche que 2. Par exemple, si la requete donne 6 enregistrements, au lieu de 2 lignes de 3, il m'affiche : une ligne de 3, une ligne de 2 et une ligne de 1. Pour 10 enregistrements, il m'affiche : 3,2,2,2,1.

Est ce que vous auriez une idée du problème ?

Merci

PS : J'ai testé avec des enregistrements identiques 6, 10,15 fois les mêmes, même résultat.

EDIT 1 : Je viens de tester, si je mets 4 au lieu de 3. Il m'affiche bien les 4 en première ligne, et 3 en deuxième. Grosso modo : première ligne, affichage des n enregistrements désirés et en deuxième ligne n-1
 
WRInaute accro
Code:
<?php

$req = "SELECT * FROM conservation WHERE categorie=364 ORDER BY titre";
   
  //--- Résultat ---//
  $res = mysql_query($req);
  //met les données dans un tableau
  while($data = mysql_fetch_assoc($res))
  {
  $tablo[]=$data;
  }
  //détermine le nombre de colonnes
  $nbcol=3;

  echo '<table>';
  $nb=count($tablo);
  for($i=0;$i<$nb;$i++){
   
  //les valeurs à afficher
  $valeur1=$tablo[$i]['id'];
  $valeur2=$tablo[$i]['titre2'];
  $valeur3=$tablo[$i]['image2'];
  $valeur4=$tablo[$i]['intro'];

  if($i%$nbcol==0)
  echo '<tr>';

  echo '<td><div class="top"><p><a href="article3.php?id='.$valeur1.'" class="white">'.$valeur2.'</a></p></div>
        <a href="article3.php?id='.$valeur1.'">'.$valeur3.'</a><p class="texte">'.$valeur4.'</p></td>';

  if($i%$nbcol==($nbcol-1))
  echo '</tr>';

  }
  echo '</table>';  ?>
 
WRInaute accro
!!!

Je pense qu'il faudrait que tu jettes un oeil sur la notion de "include" et celle de "fonction". Tu vas y gagner beaucoup de temps!

Jacques.
 
Discussions similaires
Haut