Pb gestion galerie PHP

Résolu
flo74700 Messages postés 1850 Date d'inscription   Statut Membre Dernière intervention   -  
flo74700 Messages postés 1850 Date d'inscription   Statut Membre Dernière intervention   -
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

le père
 
Bonjour

Il suffit de corriger la valeur de ta variable $fin :
if ($fin >= count($tableau) fin= count($tableau=-1;
0
le père
 
Pardon, je suis très distrait ce matin
if ($fin >= count($tableau)) $fin= count($tableau)-1;
0
flo74700 Messages postés 1850 Date d'inscription   Statut Membre Dernière intervention   236
 
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
le père
 
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 1850 Date d'inscription   Statut Membre Dernière intervention   236
 
non il va jusqu'à la fin du tableau dans ton cas.
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
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 1850 Date d'inscription   Statut Membre Dernière intervention   236
 
ok je vais regarder ca et l'adapter, car j'ai vu qu'il utilise une bd, moi c tout ds uyn tab
0
le père
 
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 1850 Date d'inscription   Statut Membre Dernière intervention   236
 
merci pour la solution:)
0