Page 1 sur 1

Ajout donnée dans While et tableau

Posté : 15 juin 2011, 21:22
par IVJ9K1E
Bonsoir à vous,
je souhaite afficher un album photo, et j'ai crée un tableau dynamique qui affiche les différentes photos dans 3 colonnes.

Mon code :
	 
<TABLE WIDTH="690" CELLSPACING=5>

<?php		 
$req1 = "SELECT * FROM ".$db_prefix."photo ORDER BY time ASC" or die(mysql_error());
$result1 = mysql_query ($req1);

for($i = 0; $rows1 = mysql_fetch_assoc($result1); ++$i)  {

if (preg_match('#^http://[\w-]+[\w.-]+\.[a-zA-Z]{2,6}#i', $rows1['lien_photo'])) { $photo = $rows1['lien_photo']; }
 else { $photo = "images/pasimage.png";}
	 
	 
if (($i == 3) OR ($i == 6) OR ($i == 9)) {
echo '<TD width="200"><center><h3>'.$rows1['chantier'].'</h3>
	  <a href="index.php?mod=alb_det&id'.$rows1['id'].'"><img src="'.$photo.'" width="150"" /></a><br />
	  <i>'.$rows1['ville'].' - '.$rows1['lieu'].'</i></center></TD></TR>';}
elseif (($i == 1) OR ($i == 4) OR ($i == 7)) {
echo'<TR><TD width="200"><center><h3>'.$rows1['chantier'].'</h3>
	  <a href="index.php?mod=alb_det&id'.$rows1['id'].'"><img src="'.$photo.'" width="150"" /></a><br />
	  <i>'.$rows1['ville'].' - '.$rows1['lieu'].'</i></center></TD>'; }
elseif (($i == 2) OR ($i == 5) OR ($i == 8)) {
echo '<TD width="200"><center><h3>'.$rows1['chantier'].'</h3>
	  <a href="index.php?mod=alb_det&id'.$rows1['id'].'"><img src="'.$photo.'" width="150"" /></a><br />
	  <i>'.$rows1['ville'].' - '.$rows1['lieu'].'</i></center></TD>'; }
}
?>
</table>
Ma question : ce tableau je l'ai fait lorsque j'ai dans ma requete SQL un limit 0, 10
mais là je souhaite afficher les photos sans limit, et que le script sache quand mettre un <tr> ou <\tr>.

Je ne sais pas si je suis clair.
Merci de votre patience.

Re: IVJ9K1E

Posté : 15 juin 2011, 22:31
par Cyrano
Tu devrais t'intéresser à l'opérateur « modulo », à voir dans la doc.

Quant à son utilisation, ça peut ressembler à ceci :
<?php
//...
for($i = 0; $i < $nbmax; $i++)
{
    if($i == 0 || $i % 3 == 0)
    {
         // $i est un multiple de 3, donc...
    }
    elseif(($i + 1) % 3 == 0)
    {
         // $i n'est pas un multiple de 3, mais au prochain tour il le sera, donc...
    }
    else
    {
         // autres cas...
    }
}

Ceci dit, ça veut dire que le nombre de tes photos doit toujours être un multiple de 3 : que feras-tu s'il en manque une ou deux pour avoir un tableau HTML conforme avec une dernière ligne comportant bien trois cellules ?
Il conviendrait donc de connaitre avant la boucle le nombre qu'il y a : la fonction mysql_num_rows() devrait t'aider.