Repetition de foreach
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 -
Bonjour.
J'ai préparé un script pour afficher des photo dans une table en répartissant les photos sur trois colonnes.
Le souci est que le deuxième foreach ne fonctionne pas.
Les photos qui devraient être dans le deuxième foreach sont incluses dans le troisième.
Pour faire plus simple pour l'instant j'affiche seulement le nom de l'image.
Voici le code.
Si quelqu'un pouvait m'aider, ce serait parfait, car ne connaissant pas trop php, j'ai réussi a faire cela mais maintenant je bloque.
Merci pour votre aide.
J'ai préparé un script pour afficher des photo dans une table en répartissant les photos sur trois colonnes.
Le souci est que le deuxième foreach ne fonctionne pas.
Les photos qui devraient être dans le deuxième foreach sont incluses dans le troisième.
Pour faire plus simple pour l'instant j'affiche seulement le nom de l'image.
Voici le code.
<?php $categoria = "42111"; $files = glob('../../image/galeria/'.$categoria.'*'); $lines = count($files); // nombre de photo $nbcol = 3 ; // nb de colonne $nbphotocol = ceil($lines/$nbcol); //nb photo par colonne $col1 = $nbphotocol; $col2 = $col1+$nbphotocol; $i = 0; echo '<table width="60%" border="1"><tr>'; echo '<td width="30%">'; // premier foreach foreach($files as $valeur) { while ($i < $col1) { echo 'col 1 ' .$valeur.'<br/>'; //echo '<img width="100%" src=" ' .$valeur. ' "><br />'; break; } $i++; } echo '</td>'; echo '<td width="30%">'; // deuxieme foreach foreach($files as $valeur) { while ($i >= $col1 && $i < $col2) { echo 'col 2 ' .$valeur.'<br/>'; //echo '<img width="25%" src=" ' .$valeur. ' "><br />'; break; } $i++; } echo '</td>'; echo '<td width="30%">'; // troiseme foreach foreach($files as $valeur) { while ($i >= $col2) { echo 'col 3 ' .$valeur.'<br/>'; //echo '<img width="25%" src=" ' .$valeur. ' "><br />'; break; } $i++; } echo '</td>'; echo '</tr></table>'; ?>
Si quelqu'un pouvait m'aider, ce serait parfait, car ne connaissant pas trop php, j'ai réussi a faire cela mais maintenant je bloque.
Merci pour votre aide.
A voir également:
- Repetition de foreach
- Répétition sonnerie sms samsung - Forum Samsung
- Blue screen à répétition - Guide
- Désactiver répétition touche clavier windows 11 - Guide
- Get-appxpackage -allusers | foreach {add-appxpackage -disabledevelopmentmode -register “$($_.installlocation)appxmanifest.xml”} - Forum Windows 8 / 8.1
- Foreach mysql ✓ - Forum MySQL
4 réponses
Bonjour
Pourquoi es-tu une énième discussion pour le même genre de sujet... ?
Il me semblait qu'on avait déjà résolu ta demande ici
https://forums.commentcamarche.net/forum/affich-37398159-galerie-de-photo-en-trois-colonnes#15
Là, tu repars encore sur un nouveau script sans tenir compte des réponses précédentes
Quel intérêt ??
Pourquoi es-tu une énième discussion pour le même genre de sujet... ?
Il me semblait qu'on avait déjà résolu ta demande ici
https://forums.commentcamarche.net/forum/affich-37398159-galerie-de-photo-en-trois-colonnes#15
Là, tu repars encore sur un nouveau script sans tenir compte des réponses précédentes
Quel intérêt ??
Bien sur que j'avais vu ton script, mais je n'arrivais pas a faire mon tableau.
C est pourquoi je me suis entêté a refaire en suivant un peu ton exemple.
Ben dans ce cas tu poursuis dans la discussion initiale au lieu de recréer une nouvelle discussion sur le forum ....
Car si tu n'arrives pas à utiliser le code que je t'ai donné, tu demandes de l'aide dessus au lieu de refaire un code qui n'a ni queue ni tête....
Donc, si ton but est toujours de mettre 3 images par cellules, dans 3 colonnes... on peut repartir du code que je t'avais donné
<?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;
Il suffit donc de mettre trois boucles imbriquées sur la variable $arrF
ce qui devrait donner un truc du genre :
echo "<table>"; foreach($arrF as $Row ){ echo "<tr>"; foreach($Row as $Col){ echo "<td>"; foreach($Col as $img){ echo "<img src='$img' />"; } echo "</td>"; } echo "</tr>"; } echo "</table>";
Bonjour Jordane.
Je me suis réjouis trop vite.
Je viens de mettre sur le serveur le script, mais il ne fonctionne pas alors que en local tout va bien.
Aurais-tu une idée?
J'ai mis echo $lines qui me donne le numéro correct d'image mais les images ne s'affichent pas
Je me suis réjouis trop vite.
Je viens de mettre sur le serveur le script, mais il ne fonctionne pas alors que en local tout va bien.
Aurais-tu une idée?
J'ai mis echo $lines qui me donne le numéro correct d'image mais les images ne s'affichent pas
echo $lines .. c'est à dire ???
Dans le code que je t'ai donné.. je n'ai pas utilisé ce nom de variable .. à moins que je me trompe ???
Donc.. commence par nous montrer exactement le code que tu as mis sur le serveur.
Relis le bien.. pour être sûr d'avoir mis les bons chemins ...
Et éventuellement, donnes nous l'url pour accéder à la page
Dans le code que je t'ai donné.. je n'ai pas utilisé ce nom de variable .. à moins que je me trompe ???
Donc.. commence par nous montrer exactement le code que tu as mis sur le serveur.
Relis le bien.. pour être sûr d'avoir mis les bons chemins ...
Et éventuellement, donnes nous l'url pour accéder à la page
Ta réponse était parfaite.
J'ai résolu le problème que j'indiquai dans le dernier message.
J'avais transféré mon script sur el serveur et cela ne fonctionnait pas.
En réalité je faisais le test avec seulement deux photos et il en faut au moins 3.
Je te remercie pour ton aide et ton soutien. c'est parfait
J'ai résolu le problème que j'indiquai dans le dernier message.
J'avais transféré mon script sur el serveur et cela ne fonctionnait pas.
En réalité je faisais le test avec seulement deux photos et il en faut au moins 3.
Je te remercie pour ton aide et ton soutien. c'est parfait
Ton while ne se termine jamais vu que tu incrémentes ta variable i en dehors de cette boucle... Par conséquent, tu n'atteinds jamais la condition de ta boucle
Bien sur que j'avais vu ton script, mais je n'arrivais pas a faire mon tableau.
C est pourquoi je me suis entêté a refaire en suivant un peu ton exemple.
En même temps cela me permet d'apprendre.