Pagination PHP [Résolu/Fermé]

Messages postés
911
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
1 juin 2019
- - Dernière réponse : koko29
Messages postés
19
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
24 octobre 2011
- 17 mars 2011 à 13:46
Bonjour à vous tous !

J'ai tenté de faire une pagination pour une galerie ( toute les 10 images )
J'ai un peu suivi un tuto, un peu fait par moi même, mais là je bloque complètement.

La pagination se fait correctement, toutes les 10 images il se crée un nouveau numéro de page mais les images
restent toujours sur la même.
J'ai donc bien la pagination mais toutes les images se mettent les unes sous les autres, indéfiniment.

( Par contre je suis vraiment un gros gros débutant, si vous pouviez m'expliquer ce qu'il manque et où le rajouter, c'est important
pour moi de bien comprendre ce que je fais )

En vous remerciant.

[CODE]

<div id="galerie">

<?php

$dos = "web/images/mini";

$dir = opendir($dos);

while($file = readdir($dir)){

$allow_ext = array("jpg",'png','gif');

$ext = strtolower(substr($file,-3));

if (in_array($ext,$allow_ext)){

?>


<div id="divIGM">

<table id="tblThumbsLayout" cellpadding="10" cellspacing="5" align="center";>

<tr>
<td id='topCell' colspan='4'>
</td>
</tr>

<tr>
<td class='tdImg'>
<a href= "web/images/<?php echo $file; ?>" rel='lightbox[id0]'>
<img class='eImage' style="border:none" src="web/images/mini/<?php echo $file; ?>"></a>
<p align=center><font class='tdTitle'><?php echo $file; ?></font></p>
</td>
</tr>

</table>

</div>

<?php

}

}

?>

<?php

$NombreImagesParPages = 10; // Nombre d'images par page

// On compte le nombre d'images

$files = glob("web/images/mini/*.*");

$TotalDesImages = count($files);

// On calcule le nombre de pages à créer
$NombreDePages = ceil($TotalDesImages / $NombreImagesParPages);

// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $NombreDePages ; $i++)

{

echo '<a href="realisations.php?page=' . $i . '">' . $i . '</a> ';

}

?>

/CODE

--
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
3 septembre 2014
29
3
Merci
Salut.

Je te remets tout le script avec la prise en charge du dossier de miniatures.
Par contre, il faut que le faut que le nom des images soient identiques dans les deux dossiers.

<?php
	$max_images = 5;	// Nombre d'images à afficher
	$image_path = 'images/';	// Dossier d'images
	$thumb_path = 'images/thumbs/';	// Dossier des miniatures
	$list_ext = array('jpeg', 'jpg', 'png','gif');	// Liste des extensions autorisées
	
	
	$folder = opendir($image_path);
	while($file = readdir($folder)){
		$ext = explode('.', $file);
		$ext = strtolower($ext[count($ext) - 1]);
		if (in_array($ext,$list_ext)){
			$list_images[] = $image_path . $file;
			$list_thumbs[] = $thumb_path . $file;
		}
	}

	$current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];

	$nb_pages = ceil(count($list_images) / $max_images); 
	
	// Affichage des images
	for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
		if($i < count($list_images)) {
			if(file_exists($list_images[$i])) {
				echo '<a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></a>';
			}
		}
	}
	
	// Affichage du pager
	for ($i = 1 ; $i <= $nb_pages ; $i++) {
		echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
	}
?>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 6025 internautes nous ont dit merci ce mois-ci

Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
3 septembre 2014
29
1
Merci
Salut, j'avais fait un script dans le genre il y a un petit moment.
Je te met le code :


<?php
	$max_images = 5;	// Nombre d'images à afficher
	$image_path = 'images/';	// Dossier d'images
	$list_ext = array('jpeg', 'jpg', 'png','gif');	// Liste des extensions autorisées
	
	
	$folder = opendir($image_path);
	while($file = readdir($folder)){
		$ext = explode('.', $file);
		$ext = strtolower($ext[count($ext) - 1]);
		if (in_array($ext,$list_ext)){
			$list_images[] = $image_path . $file;
		}
	}

	$current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];

	$nb_pages = ceil(count($list_images) / $max_images); 
	
	// Affichage des images
	for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
		if($i < count($list_images)) {
			if(file_exists($list_images[$i])) {
				echo '<a href="'.$list_images[$i].'"><img src="'.$list_images[$i].'"/></a>';
			}
		}
	}
	
	// Affichage du pager
	for ($i = 1 ; $i <= $nb_pages ; $i++) {
		echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
	}
?>


A toi de l'adapter à tes besoins.
Messages postés
911
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
1 juin 2019
6
0
Merci
Merci à toi ça marcje du feu de dieu !!

Sans vouloir abuser de ta gentillesse, j'aimerai pouvoir afficher les originales quand je clique dessus.

Je suppose qu'il doit falloir indiquer un autre dossier quelque part ?

Merci encore !!!
Messages postés
911
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
1 juin 2019
6
0
Merci
Parfait, j'y suis arrivé parfaitement grâce à toi.

Merci encore pour ton super coup de main.
Messages postés
19
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
24 octobre 2011
0
Merci
bonjour,

d'abord merci pour le script vincebzh

mais comment faire une sorte de tableaux dans le même genre que celui ci :

http://www.tonnerre-pics-up.fr/galerie.php

merci de par avance car j'arrive uniquement à faire soit du horizontale soit du verticale, mais pas de tableau
Messages postés
19
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
24 octobre 2011
0
Merci
personne pour un coup de main