Page 1 sur 2

Afficher des images selon des boucles

Posté : 17 avr. 2005, 14:21
par Invité
Bonjour à tous,

Je cherche à faire un affichage d'images selon plusieurs boucles imbriquées mais je suis quelque peu perdu...

En fait à partir d'un nombre prédéfini d'images je voudrais formater le tableau avec les boucles pour éviter d'avoir à faire des copier/coller de <tr> un peu partout.

En gris, imaginons que j'ai une totalité de 14 images. Je désire en afficher 5 par ligne. J'aurais donc 3 lignes en tout.

Pouvez-vous m'aider à faire les différentes boucles pour obtenir ce tableau à partir du nb total d'images et du nb à afficher par colonne ?

J'ai fait quelque chose du genre :
<table border="1">
<?php
$nb_photos=15;
$nb_col=5;
$nb_lignes=$nb_photos/$nb_col;

for($i=1;$i<=$nb_lignes;$i++)
{
	echo '<tr>';
	
	for($j=1;$j<=$nb_col;$j++)
	{
		echo '<td>'.$j.'</td>';
	}
	
	echo '</tr>';
}
?>
Mais ça ne marche pas des masses...

Merci de votre aide ! :wink:

Posté : 17 avr. 2005, 21:14
par ouckileou
qu'est-ce qui ne marche pas ?

ton script donne ça :
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
ce n'est pas le schéma que tu souhaites ?

Posté : 17 avr. 2005, 21:38
par Invité
Nan du tout, ce que je voudrais c'est :
1 2 3 4 5
6 7 8 9 10
11 12 13 14

Posté : 17 avr. 2005, 21:54
par ouckileou
il faut alors se baser sur la même variable :
<table border="1">
	<tr>
		<?php
		for ($i = 1; $i <= $nb_photos; $i++) {
			echo (($i % $nb_col-1) == 0)?"</tr><tr>":"";
				echo '<td>'.$i.'</td>';
		}
		?>
	</tr>
</table>

Posté : 18 avr. 2005, 15:20
par Invité
ok merci beaucoup :) Je vais essayer tout ça ;)

Posté : 18 avr. 2005, 22:54
par Invité
Bonsoir,

J'avais le meme problème que "Invité".
J'ai donc copier le bout de code donné par ouckileou.

mon problème maintenant est dans l'affichage de l'image

mon code est le suivant
<?php 
$nb_photos=15; 
$nb_col=5; 
$nb_lignes=$nb_photos/$nb_col; 
?>
<table border="1"> 
    <tr> 
        <?php 
        for ($i = 1; $i <= $nb_photos; $i++) { 
            echo (($i % $nb_col-1) == 0)?"</tr><tr>":""; 
            echo "<td><IMG src=../images/galerie/";
            echo $row_ImgGal['NomPhoto'];
            echo " width=80 height=60 border=0></td>"; 
        } 
        ?> 
    </tr> 
</table> 
J'ai décomposé volontairement l'affichage pour essayer de trouver le problème, mais rien n'a été résolu.

Si quelqu'un peut m'aider ce serait cool.
Merci bcp

Posté : 18 avr. 2005, 22:56
par caro
C'est moi Caro qui vient d'écrire le message. Je n'ai pas vu que je n'étais pas connecté

Posté : 18 avr. 2005, 23:00
par ouckileou
peux-tu préciser ce qui te pose problème ?

avec ce code j'ai bien 3 lignes de 5 images :
<?php
$nb_photos=15;
$nb_col=5;
$nb_lignes=$nb_photos/$nb_col;
?>
<table border="1">
    <tr>
        <?php
        for ($i = 1; $i <= $nb_photos; $i++) {
            echo (($i % $nb_col-1) == 0)?"</tr><tr>":"";
            echo "<td><IMG src=benderdance2.gif";
            //echo $row_ImgGal['NomPhoto'];
            echo " width=80 height=60 border=0></td>";
        }
        ?>
    </tr>
</table>

Posté : 18 avr. 2005, 23:04
par caro
mon problème est que l'image ne s'affiche pas.
J'ai bien la place pour l'image (encadré avec petite croix rouge en haut à gauche)
Voici le lien
[url]http://www.echaillon.com/php/galerie.ph ... ue%20Terre[/url]

Posté : 18 avr. 2005, 23:06
par Gentoo Warrior
src="" <- avec des guillemets
echo "<td><IMG src=\"../images/galerie/";
echo $row_ImgGal['NomPhoto'];
echo "\" width=80 height=60 border=0></td>";

Posté : 18 avr. 2005, 23:07
par ouckileou
ok, c'est simplement qu'il n'y a aucun nom d'image de spécifié

voici le source HTML généré :

Code : Tout sélectionner

<td><IMG src=../images/galerie/ width=80 height=60 border=0></td>
il y a un problème avec
echo $row_ImgGal['NomPhoto'];
cette variable est vide... :)
vérifie qu'elle est bien renseignée (j'imagine que tu la récupères d'une base de données) et essaye de l'afficher comme ça ensuite :

        <?php
        for ($i = 1; $i <= $nb_photos; $i++) {
            echo (($i % $nb_col-1) == 0)?"</tr><tr>":"";
            echo "<td><IMG src=\"".$row_ImgGal['NomPhoto']."\" width=80 height=60 border=0></td>";
        }
        ?>

Posté : 18 avr. 2005, 23:21
par caro
Ma variable n'est pas vide. les photos au-dessus du tableau vienne de la meme variable.
J'ai repris le bout de code que tu as mis et le pb reste le meme

Posté : 18 avr. 2005, 23:24
par ouckileou
le fait est que le problème n'est pas d'afficher un tableau de 3*5 images mais bien d'afficher une image tout court...

et si je regarde ton source, le nom du fichier image n'est pas affiché

si ta variable $row_ImgGal['NomPhoto'] vient d'une boucle mysql_fetch_array(), à mon avis c'est normal qu'elle ne soit plus attribuée ensuite

enfin poste un peu plus de code pour voir :)

Posté : 19 avr. 2005, 20:18
par caro
Voici un peu plus de code
[php]
<?php require_once('../Connections/ConnEcha.php'); ?>
<?php
if (isset($_GET['pageNum_ImgGal'])) {
$pageNum_ImgGal = $_GET['pageNum_ImgGal'];
}
$startRow_ImgGal = $pageNum_ImgGal * $maxRows_ImgGal;

$colname_ImgGal = "1";
if (isset($_GET['TitGal'])) {
$colname_ImgGal = (get_magic_quotes_gpc()) ? $_GET['TitGal'] : addslashes($_GET['TitGal']);
}
mysql_select_db($database_ConnEcha, $ConnEcha);
$query_ImgGal = sprintf("SELECT * FROM galerie WHERE TitGal = '%s'", $colname_ImgGal);
$query_limit_ImgGal = sprintf("%s LIMIT %d, %d", $query_ImgGal, $startRow_ImgGal, $maxRows_ImgGal);
$ImgGal = mysql_query($query_limit_ImgGal, $ConnEcha) or die(mysql_error());
$row_ImgGal = mysql_fetch_assoc($ImgGal);

?>[/php]

Puis apres c'est le meme code que + haut.

Posté : 19 avr. 2005, 20:36
par caro
En bidouillant un peu, les images s'affichent. mais c'est toujours la meme qui est affichée :(
Je dois pas etre bien loin