Pagination PHP [Résolu/Fermé]

Signaler
Messages postés
919
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
23 septembre 2020
-
Messages postés
19
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
24 octobre 2011
-
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

--

6 réponses

Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
3 septembre 2014
29
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> ';
	}
?>
3
Merci

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

CCM 60769 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
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
919
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
23 septembre 2020
6
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
919
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
23 septembre 2020
6
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

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

personne pour un coup de main