Page 1 sur 1

saut de lignes avec do{} while{}

Posté : 16 juil. 2006, 22:37
par pfrib
Salut
Je voudrais faire une galerie photo à partir d'une base MySql grâce à la fonction do{} while{};.
Mais je ne sais pas comment faire une saut de ligne tous les 5 images par exemple.

Merci

Posté : 17 juil. 2006, 07:41
par Cyrano
Fais une recherche dans le forum sur "modulo", tu vas trouver ta réponse.

Posté : 17 juil. 2006, 12:16
par pfrib
Merci beaucoup ca marche très bien :
http://www.phpfrance.com/forums/voir_su ... modulo.php

Posté : 17 juil. 2006, 13:59
par pfrib
:(
j'ai eu un problème !
j'ai tésté avec 12 images mais seulement 11 s'affiche !
<?php
$cnx = mysql_connect( "localhost", "root", "" ) or die ("Impossible de se connecter au serveur") ;

mysql_select_db('photos',$cnx);
	
$query_galphoto = "SELECT photos.url, photos.id FROM photos";
$galphoto = mysql_query($query_galphoto, $cnx) or die(mysql_error());
$row_galphoto = mysql_fetch_assoc($galphoto);
$totalRows_galphoto = mysql_num_rows($galphoto);

?>

<?php

$i = 0;

while(($row_galphoto= mysql_fetch_assoc($galphoto)) != false)
{
	if($i % 5 == 0)
	{
	echo "<p>";
	}
	?>
	<a href="<?php echo $row_galphoto['url'];?>">
	<img src="<?php echo $row_galphoto['id'];?>" width="150" alt="<?php echo $row_galphoto['id'];?>">
	</a>
	<?php
	$i++;
};
?>
j'ai une base de donnés appelée photos, et une table photos qui contient 2 champs url et id
ces 2 champs indiquent l'url complête de l'image

mais les premiers id et url (de la première image) ne sont pas pris en compte par while {}

aidez moi svp

Posté : 17 juil. 2006, 19:29
par Cyrano
Je n'ai pas trouvé d'erreur flagrante dans ton code, le mieux que je puisse proposer, c'est une légère simplification ainsi que l'ajout de la fermeture du paragraphe ouvert, mais sinon, je vois pas :
<?php
$cnx = mysql_connect( "localhost", "root", "" ) or die ("Impossible de se connecter au serveur") ;

mysql_select_db('photos',$cnx);

$query_galphoto = "SELECT photos.url, photos.id FROM photos";
$galphoto = mysql_query($query_galphoto, $cnx) or die(mysql_error());
$row_galphoto = mysql_fetch_assoc($galphoto);
$totalRows_galphoto = mysql_num_rows($galphoto);
?>
<?php
$i = 0;
while(($row_galphoto= mysql_fetch_assoc($galphoto)) != false)
{
    echo (($i % 5) == 0) ? "<p>" : null;
?>
<a href="<?php echo $row_galphoto['url'];?>"><img src="<?php echo $row_galphoto['id'];?>" width="150" alt="<?php echo $row_galphoto['id'];?>"></a>
<?php
    echo (($i % 5) == 0) ? "</p>\n" : null;
    $i++;
};
?>
Éventuellement, fais afficher ta page et de là, affiche le code source généré pour vérifier si tout a l'air normal, on trouve des choses étranges des fois ;)

Posté : 18 juil. 2006, 01:07
par pfrib
Merci
je crois avoir résolu le problème :
j'ai essayé do {} while (); plutot que while
et j'ai eu toutes les photos !

Code : Tout sélectionner

<?php $i = 0; do { if($i % 5 == 0) { echo "<p>"; } ?> <a href="<?php echo $row_galphoto['url'];?>"> <img src="<?php echo $row_galphoto['id'];?>" width="150" alt="<?php echo $row_galphoto['id'];?>"> </a> <?php $i++; } while(($row_galphoto= mysql_fetch_assoc($galphoto)) != false); ?>