Galerie de photo en trois colonnes
Résolu
mont_dani
Messages postés
232
Date d'inscription
Statut
Membre
Dernière intervention
-
mont_dani Messages postés 232 Date d'inscription Statut Membre Dernière intervention -
mont_dani Messages postés 232 Date d'inscription Statut Membre Dernière intervention -
Bonsoir
Je prépare un mur de photo pour ma web sans utiliser de base de donnée.
J'ai trouver un script qui me conviens presque, surtout que le php et moi nous ne nous connaissons pas très bien.
En effet ce script positionne 4 photos sur une ligne <TD> de la table.
Ce qui fait qu'¡il existe des espaces vides entre deux lignes quand change le format de la photo de portrait a paysage.
Je voudrai savoir si quelqu'un pourrait m'aider pour pouvoir inclure dans le <TD> le nombre d'imge indiqué par $nb_image
Voici mon code
Merci pour votre aide
Je prépare un mur de photo pour ma web sans utiliser de base de donnée.
J'ai trouver un script qui me conviens presque, surtout que le php et moi nous ne nous connaissons pas très bien.
En effet ce script positionne 4 photos sur une ligne <TD> de la table.
Ce qui fait qu'¡il existe des espaces vides entre deux lignes quand change le format de la photo de portrait a paysage.
Je voudrai savoir si quelqu'un pourrait m'aider pour pouvoir inclure dans le <TD> le nombre d'imge indiqué par $nb_image
Voici mon code
<?php $files = glob("../../image/galeria/11121*.*"); // toute les images qui commence par 11121 $compteur = count($files); // nombre total d image $nb_colonne=3; // nombre de colonnes a l'affichage $nb_image= ceil(($compteur) / ($nb_colonne));// nombre d'image par colonne arrondi au sup ?> <table> <?php for ($i = 0; $i < $compteur; $i+=3) { // On augmente de 3 à chaque passage de la boucle et elle tourne tant qu'on a pas atteint le compte echo '<tr>'; for ($j = $i; $j < ($i + 3); $j++) { // Les quatre prochains fichiers if (isset($files[$j])) // Vérifie qu'on n'est pas rendu trop loin echo '<td><img width="200px" src="' . $files[$j] . '" alt="" /> </td>'; } echo '</tr>'; } ?> </table>
Merci pour votre aide
A voir également:
- Galerie de photo en trois colonnes
- Galerie photo en ligne gratuite - Guide
- Google photo - Télécharger - Albums photo
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment masquer une photo dans la galerie - Guide
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
veux-tu utiliser $nb_image, au lieu de 4, pour contrôler le nombre d'images par ligne?
veux-tu utiliser $nb_image, au lieu de 4, pour contrôler le nombre d'images par ligne?
Bonjour yg_be
Merci pour ton soutien.
Oui se serait mieux d'utiliser $nb_image.
Je suppose qu'il faut faire une boucle ou quelque chose comme ça.
Merci pour ton soutien.
Oui se serait mieux d'utiliser $nb_image.
Je suppose qu'il faut faire une boucle ou quelque chose comme ça.
Bonjour,
Pour le coup, ça n'a plus rien à voir avec le PHP....
Ce n'est qu'une question de html/css ....
Il faudrait que tu définisses, dans tes TD, une DIV de largeur et longeur fixes et que tu places tes images dans ces DIV ...
Et pour les espacements entre les lignes.. il faut jouer avec le padding et le margin ...
Question à reposer dans le forum webmaster/css si tu ne trouves pas...
Pour le coup, ça n'a plus rien à voir avec le PHP....
Ce n'est qu'une question de html/css ....
Il faudrait que tu définisses, dans tes TD, une DIV de largeur et longeur fixes et que tu places tes images dans ces DIV ...
Et pour les espacements entre les lignes.. il faut jouer avec le padding et le margin ...
Question à reposer dans le forum webmaster/css si tu ne trouves pas...
Bonsoir Jordane
Je me suis trompé dans le montage que j'ai montré avant. Ce que souhaite faire c'est

Je m'explique de manière différente.
Pour l'intant j'ai
<tr><td>image</td><td>image</td><td>image</td></tr>
<tr><td>image</td><td>image</td><td>image</td></tr>
<tr><td>image</td><td>image</td><td>image</td></tr>
Je voudrai obtenir
<tr><td>image1 image 2 image 3</td><td>image4 image 5 image 6</td><td>image 7 image 8</td></tr>
en faisant quelque chose comme ca dans le php
Cela ne fonctionne pas parce que les photos se répètent.
Penses-tu qu'il s'agit toujours d'un problème de css?
Je me suis trompé dans le montage que j'ai montré avant. Ce que souhaite faire c'est

Je m'explique de manière différente.
Pour l'intant j'ai
<tr><td>image</td><td>image</td><td>image</td></tr>
<tr><td>image</td><td>image</td><td>image</td></tr>
<tr><td>image</td><td>image</td><td>image</td></tr>
Je voudrai obtenir
<tr><td>image1 image 2 image 3</td><td>image4 image 5 image 6</td><td>image 7 image 8</td></tr>
en faisant quelque chose comme ca dans le php
<?php $files = glob("../../image/galeria/11121*.*"); // toute les images qui commence par 11121 $compteur = count($files); // nombre total d image $nb_colonne=3; // nombre de colonnes a l'affichage $nb_image= ceil(($compteur) / ($nb_colonne));// nombre d'image par colonne ?> <table> <?php for ($i = 0; $i < $compteur; $i+=3) { // On augmente de 3 à chaque passage de la boucle et elle tourne tant qu'on a pas atteint le compte echo '<tr>'; for ($j = $i; $j < ($i + 3); $j++) { // Les trois prochains photos if (isset($files[$j])) // Vérifie qu'on n'est pas rendu trop loin echo '<td><img width="200px" border=" 5px solid #89B700" src="' . $files[$j] . '" alt="Image" /><br> <img width="200px" border=" 5px solid #89B700" src="' . $files[$j+1] . '" alt="Image" /><br> <img width="200px" border=" 5px solid #89B700" src="' . $files[$j+2] . '" alt="Image" /><br></td>'; } echo '</tr>'; } ?>
Cela ne fonctionne pas parce que les photos se répètent.
Penses-tu qu'il s'agit toujours d'un problème de css?
Bonjour
Vous pouvez essayer avec cela UberGallery, sans base de données. Entièrement paramétrable et le PHP est facile à "modifier".
Aperçu "généré" en carré, images portrait ou paysage..
Mais il est préférable d'avoir des images dans la même définition/résolution.
Bien lire la procédure d'installation simple
A+
Vous pouvez essayer avec cela UberGallery, sans base de données. Entièrement paramétrable et le PHP est facile à "modifier".
Aperçu "généré" en carré, images portrait ou paysage..
Mais il est préférable d'avoir des images dans la même définition/résolution.
Bien lire la procédure d'installation simple
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir.
.
Me revoivi après avoir chercher pendant deux jours.
Je suis arrivé a cette solution qui fonctionne très bien.
Peut etre il-y a t-il moyen d'alleger le script? je suis ouvert a toutes proposition.
Voici le mein:
En tout cas merci pour votre aide.
.
Me revoivi après avoir chercher pendant deux jours.
Je suis arrivé a cette solution qui fonctionne très bien.
Peut etre il-y a t-il moyen d'alleger le script? je suis ouvert a toutes proposition.
Voici le mein:
<?php $files = glob('../../image/galeria/11121*'); // toute les photo qui commence par echo '<table width= "80%" align="center"> <tr> <td>'; echo "<img class='catimage' src='$files[3]'><br> <img class='catimage' src='$files[6]'><br>"; if (isset($files[9])) { echo "<img class='catimage' src='$files[9]'><br>";} if (isset($files[12])) { echo "<img class='catimage' src='$files[12]'><br>";} if (isset($files[15])) { echo "<img class='catimage' src='$files[15]'><br>";} if (isset($files[18])) { echo "<img class='catimage' src='$files[18]'><br>";} if (isset($files[21])) { echo "<img class='catimage' src='$files[21]'><br>";} if (isset($files[24])) { echo "<img class='catimage' src='$files[24]'><br>";} echo '</td> <td>'; echo "<img class='catimage' src='$files[1]'><br> <img class='catimage' src='$files[4]'><br> <img class='catimage' src='$files[7]'><br>"; if (isset($files[10])) { echo "<img class='catimage' src='$files[10]'><br>";} if (isset($files[13])) { echo "<img class='catimage' src='$files[13]'><br>";} if (isset($files[16])) { echo "<img class='catimage' src='$files[16]'><br>";} if (isset($files[19])) { echo "<img class='catimage' src='$files[19]'><br>";} if (isset($files[22])) { echo "<img class='catimage' src='$files[22]'><br>";} echo '</td> <td>'; echo "<img class='catimage' src='$files[2]'><br> <img class='catimage' src='$files[5]'><br> <img class='catimage' src='$files[8]'><br>"; if (isset($files[11])) { echo "<img class='catimage' src='$files[11]'><br>";} if (isset($files[14])) { echo "<img class='catimage' src='$files[14]'><br>";} if (isset($files[17])) { echo "<img class='catimage' src='$files[17]'><br>";} if (isset($files[20])) { echo "<img class='catimage' src='$files[20]'><br>";} if (isset($files[23])) { echo "<img class='catimage' src='$files[23]'><br>";} echo '</td> </tr> </table>'; ?>
En tout cas merci pour votre aide.
Tiens...
regarde ce que donne ce code :
ne te reste plus qu'à boucler dessus pour recréer le tableau html que tu veux obtenir
regarde ce que donne ce code :
<?php $files = glob('../../image/galeria/11121*'); // toute les photo qui commence par $nb_colonne =3; // nombre de colonnes a l'affichage $nb_imgCel = 3; // Nombre d'images par cellule //variable utilisées pour recréer un array organisé comme tu le souhaites $arrF = []; $row = 0; $col = 0; $K = 0; //on boucle sur chaque fichier : foreach($files as $F){ if($col>0 && $col % ($nb_colonne-1) == 0 && $K>=$nb_imgCel){ $col=0; $K=0; $row++; } if($K>0 && $K % $nb_imgCel == 0){ $col++; $K=0; } $arrF[$row][$col][] = $F; $K++; } //pour voir à quoi ressemble l'array echo "<pre>"; print_r($arrF); echo "</pre>"; exit;
ne te reste plus qu'à boucler dessus pour recréer le tableau html que tu veux obtenir