Pagination PHP

Résolu/Fermé
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 - 28 janv. 2011 à 22:57
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

--
A voir également:

6 réponses

vincebzh Messages postés 137 Date d'inscription lundi 22 mars 2010 Statut Contributeur Dernière intervention 7 mai 2013 29
30 janv. 2011 à 16:28
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
vincebzh Messages postés 137 Date d'inscription lundi 22 mars 2010 Statut Contributeur Dernière intervention 7 mai 2013 29
29 janv. 2011 à 04:14
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.
1
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
29 janv. 2011 à 09:20
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 !!!
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
30 janv. 2011 à 18:10
Parfait, j'y suis arrivé parfaitement grâce à toi.

Merci encore pour ton super coup de main.
0

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

Posez votre question
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
15 mars 2011 à 13:22
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
0
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
personne pour un coup de main
0