Pb gestion galerie PHP

Résolu/Fermé
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 - 4 mars 2009 à 08:34
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 - 4 mars 2009 à 13:50
Bonjour, je post pour la première fois sur ce forum, car j'ai un soucis au niveau de la gestion de la galerie.
En gros pour simplifier, j'ai une pagination automatique qui dit qu'au bout de 16 photo je crée une nouvelle page.
C'est image son stockées dans un tableau.
Si le nombre de photo (nbpics) dépasse 16, je crée un lien en bas qui redirige vers la page=2.

Je recupéré la valeur 2 avec le get, et je traite de facon à ce qui recommence à la bonne image.
Mais mon problème est que dans tout les cas il effectue le tableau de la valeur de I debut que je lui est donné, jusqu'à +16.
Donc si j'ai 32 photos, il n'y à pas de soucis, il va me créer 2 pages.
Mais si j'ai par exemple 22 photos, il va créer 2 pages, 1 pleine de 16 images, et l'autre de 6 images. Il y aura ensuite 10 liens erreur vers des images inexistante (vu qu'elle n'existe pas).

Mon problème est que je voudrais qu'il s'arrete à 6 par exemple : 22 images donc 1 pages pleines de 16 images et la page 2 avec seulement 6 images.
Voila le passage du code qui nous interresse. Avez vous une solution à ce problème?
[CODE]/ On test
if(isset($_GET['page'])) {
if($_GET['page'] < 2) { $debut = 0; $fin = 15; }
else
// On donne une valeur a $debut
{$debut = ($_GET['page'] - 1) * 16 - 1;
// On donne une valeur à $fin
$fin = $debut + 16;}}



// on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures
$nbcol=4;
// on compte le nombre de miniatures
$nbpics = count($tableau);

$imageParPage=16; //Nous allons afficher 16 images par page.

// si on a au moins une miniature, on les affiche toutes
if ($nbpics != 0) {
echo '<table align=center>';
for ($i=$debut; $i<=$fin; $i++){
if($i%$nbcol==0) echo '<tr>'; /CODE
A voir également:

9 réponses

Bonjour

Il suffit de corriger la valeur de ta variable $fin :
if ($fin >= count($tableau) fin= count($tableau=-1;
0
Pardon, je suis très distrait ce matin
if ($fin >= count($tableau)) $fin= count($tableau)-1;
0
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 236
4 mars 2009 à 10:21
le problème est qu'il va m'afficher le images de l'indice i debut, jusqu'au dernier indice i fin.

et mio je veux pouvoir lui dire, que i fin = i debut + nombre di'mage restante.
0
C'est bien ce que fait mon code, non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 236
4 mars 2009 à 12:38
non il va jusqu'à la fin du tableau dans ton cas.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
4 mars 2009 à 12:47
Sinon j'ai trouvé sur un site un code permettant de faire un affichage page par page, ce qui est en fait ce que tu veux faire.
Si ça peu t'aider je te met le lien: http://www.lephpfacile.com/howto/6-comment-faire-un-affichage-page-par-page-en-php
J'utilise moi même ce code et il marche très bien.
0
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 236
4 mars 2009 à 12:51
ok je vais regarder ca et l'adapter, car j'ai vu qu'il utilise une bd, moi c tout ds uyn tab
0
Si c'est ce qu'elle fait. Je ne sais pas où tu l'as mise, il fallait la mettre là
$fin = $debut + 16;}}
if ($fin >= count($tableau)) $fin= count($tableau)-1;
// on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures
0
flo74700 Messages postés 1845 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 22 juin 2012 236
4 mars 2009 à 13:50
merci pour la solution:)
0