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 !

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