begin process at 2012 02 15 21:32:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > PAGINATION EN PHP

PAGINATION EN PHP


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :simple, pagination, php Niveau :Débutant Date de création :31/01/2010 Date de mise à jour :04/02/2010 10:03:48 Vu :6 409

Auteur : Orangina

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un code php pour afficher une pagination, avec l'appel en html pour le tester. Cela affiche juste les numéros de pages sur lesquels on clique, rien d'autre. Pas de code pour accéder à une base de données et sélectionner les enregistrements à afficher, ça se trouve partout. L'affichage de la pagination aussi, mais celui-là est vraiment simple. Pas de css de mise en forme.
Un copier-coller du code, en un seul fichier php.

Source

  • <?php
  • /*
  • $n : la page à afficher
  • $ntot : le nombre total de pages
  • */
  • function Pagination ($n, $ntot)
  • {
  • $url = $_SERVER['PHP_SELF']."?page=";
  • $deb = 1; // l'étendue totale commence à la page 1
  • $N = array(); // tableau pour mettre les valeurs de pagination (début, -5, -2, -1, +1, +2, +5, fin)
  • echo 'Page '.$n.' de '.$ntot.'<br />';
  • if ($ntot == 1) return; // s'il n'y a qu'une page on s'arrête
  • if ($n > 1) $N['deb'] = $deb; // début = page 1 si on est pas sur la première page
  • if ($n < $ntot) $N['fin'] = $ntot; // fin = dernière page si on n'y est pas déjà
  • // Calcul : les pages précédentes
  • if ($n-1 >= $deb)
  • { $N['m1'] = $n-1;
  • if ($n-2 >= $deb)
  • { $N['m2'] = $n-2;
  • if ($n-5 >= $deb)
  • { $N['m5'] = $n-5;
  • }
  • }
  • if (($N['m1'] == $N['deb']) || ($N['m2'] == $N['deb']) ||($N['m5'] == $N['deb'])) unset ($N['deb']);
  • }
  • // Calcul : les pages suivantes
  • if ($n+1 <= $ntot)
  • { $N['p1'] = $n+1;
  • if ($n+2 <= $ntot)
  • { $N['p2'] = $n+2;
  • if ($n+5 <= $ntot)
  • { $N['p5'] = $n+5;
  • }
  • }
  • if (($N['p1'] == $N['fin']) || ($N['p2'] == $N['fin']) ||($N['p5'] == $N['fin'])) unset ($N['fin']);
  • }
  • // Liens vers les pages précédentes
  • if (isset ( $N['deb'])) echo '<a title="Début : Page '.$N['deb'].'" href="'.$url.$N['deb'].'" class="pagenav">&laquo;&nbsp;</a>';
  • if (isset ( $N['m5'])) echo '&nbsp;&nbsp;<a title="Page '.$N['m5'].'" href="'.$url.$N['m5'].'" class="pagenav">'.$N['m5'].'&nbsp;</a>';
  • if (isset ( $N['m2'])) echo '&nbsp;&nbsp;<a title="Page '.$N['m2'].'" href="'.$url.$N['m2'].'" class="pagenav">'.$N['m2'].'&nbsp;</a>';
  • if (isset ( $N['m1'])) echo '<a title="Page '.$N['m1'].'" href="'.$url.$N['m1'].'" class="pagenav">'.$N['m1'].'&nbsp;</a>';
  • // La page actuelle
  • echo $n."&nbsp";
  • // Liens vers les pages suivantes
  • if (isset ( $N['p1'])) echo '<a title="Page '.$N['p1'].'" href="'.$url.$N['p1'].'" class="pagenav">'.$N['p1'].'&nbsp;</a>';
  • if (isset ( $N['p2'])) echo '<a title="Page '.$N['p2'].'" href="'.$url.$N['p2'].'" class="pagenav">'.$N['p2'].'&nbsp;</a>&nbsp;&nbsp;';
  • if (isset ( $N['p5'])) echo '<a title="Page '.$N['p5'].'" href="'.$url.$N['p5'].'" class="pagenav">'.$N['p5'].'&nbsp;</a>&nbsp;&nbsp;';
  • if (isset ( $N['fin'])) echo '<a title="Fin: Page '.$N['fin'].'" href="'.$url.$N['fin'].'" class="pagenav">&raquo;&nbsp;</a>';
  • } // Pagination()
  • ?>
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  • <head>
  • </head>
  • <body>
  • <?php
  • $pagetot=30;
  • if (!isset($_GET['page']))Pagination (1, $pagetot);
  • else Pagination ($_GET['page'], $pagetot);
  • ?>
  • </body>
  • </html>
<?php

/*
$n : la page à afficher
$ntot : le nombre total de pages
*/
	 
function Pagination ($n, $ntot)
{
	$url = $_SERVER['PHP_SELF']."?page="; 
	$deb = 1;								// l'étendue totale commence à la page 1
	$N = array();							// tableau pour mettre les valeurs de pagination (début, -5, -2, -1, +1, +2, +5, fin)

	echo 'Page '.$n.' de '.$ntot.'<br />';
	if ($ntot == 1) return;						// s'il n'y a qu'une page on s'arrête 
	if ($n > 1) $N['deb'] = $deb;				// début =  page 1 si on est pas sur la première page
	if ($n < $ntot) $N['fin'] = $ntot;			// fin = dernière page si on n'y est pas déjà
	// Calcul : les pages précédentes
	if ($n-1 >= $deb) 
	{	$N['m1'] = $n-1;
		if ($n-2 >= $deb) 
		{	$N['m2'] = $n-2;
			if ($n-5 >= $deb) 
			{	$N['m5'] = $n-5;
			}   
		}
		if (($N['m1'] == $N['deb']) || ($N['m2'] == $N['deb']) ||($N['m5'] == $N['deb'])) unset ($N['deb']);
	}
	// Calcul : les pages suivantes
	if ($n+1 <= $ntot) 
	{	$N['p1'] = $n+1;
		if ($n+2 <= $ntot) 
		{	$N['p2'] = $n+2;
			if ($n+5 <= $ntot) 
			{	$N['p5'] = $n+5; 
			}   
		}  
		if (($N['p1'] == $N['fin']) || ($N['p2'] == $N['fin']) ||($N['p5'] == $N['fin'])) unset ($N['fin']);     
	}
	// Liens vers les pages précédentes 
	if (isset ( $N['deb'])) echo '<a title="Début : Page '.$N['deb'].'" href="'.$url.$N['deb'].'" class="pagenav">&laquo;&nbsp;</a>';
	if (isset ( $N['m5'])) echo '&nbsp;&nbsp;<a title="Page '.$N['m5'].'" href="'.$url.$N['m5'].'" class="pagenav">'.$N['m5'].'&nbsp;</a>'; 
	if (isset ( $N['m2'])) echo '&nbsp;&nbsp;<a title="Page '.$N['m2'].'" href="'.$url.$N['m2'].'" class="pagenav">'.$N['m2'].'&nbsp;</a>'; 
	if (isset ( $N['m1'])) echo '<a title="Page '.$N['m1'].'" href="'.$url.$N['m1'].'" class="pagenav">'.$N['m1'].'&nbsp;</a>'; 
	// La page actuelle
	echo $n."&nbsp";
	// Liens vers les pages suivantes
	if (isset ( $N['p1'])) echo '<a title="Page '.$N['p1'].'" href="'.$url.$N['p1'].'" class="pagenav">'.$N['p1'].'&nbsp;</a>'; 
	if (isset ( $N['p2'])) echo '<a title="Page '.$N['p2'].'" href="'.$url.$N['p2'].'" class="pagenav">'.$N['p2'].'&nbsp;</a>&nbsp;&nbsp;'; 
 	if (isset ( $N['p5'])) echo '<a title="Page '.$N['p5'].'" href="'.$url.$N['p5'].'" class="pagenav">'.$N['p5'].'&nbsp;</a>&nbsp;&nbsp;'; 
	if (isset ( $N['fin'])) echo '<a title="Fin: Page '.$N['fin'].'" href="'.$url.$N['fin'].'" class="pagenav">&raquo;&nbsp;</a>';
	 
 } // Pagination()
 ?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
</head>
<body>
<?php
$pagetot=30;
 if (!isset($_GET['page']))Pagination (1, $pagetot);
 else Pagination ($_GET['page'], $pagetot);
?>
</body>
</html>


 Conclusion

J'espère que ça pourra servir.


 Historique

04 février 2010 10:03:48 :
Code pour les Flèches D et G corrigé. Deux lignes ajoutées pour n'afficher les flèches de la première et dernière page que lorsque c'est nécessaire.

 Sources de la même categorie

Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000
Source avec Zip Source avec une capture GENERATEUR DE BOUTONS DE PARTAGES POUR RESEAUX SOCIAUX par cod57

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture PAGINATION JAVASCRIPT PHP MYSQL par cod57
SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS) par begueradj
Source avec Zip Source avec une capture GALERIE PHOTO SIMPLE À GÉRER par francky6691
Source avec Zip Source avec une capture CAPTCHA PHP SIMPLE par toutoos

Commentaires et avis

Commentaire de Orangina le 31/01/2010 23:58:04

Attention : les codes &#9668; et &#9658; aux lignes 39 et 49 sont en fait des flèches gauche et droite, mais elles ont été transformées dans le copier-coller. A vous d'en remettre, < et > ou un petit gif.

Commentaire de gillardg le 03/02/2010 12:08:43

bonjour
ça a l'air bien ton code,
couplé avec une lecture des fichiers présents dans le répertoire avec le titre des pages en tooltip :)

Commentaire de Orangina le 03/02/2010 22:02:30

Bonjour

Il faut le mettre en forme. Pour que ce soit plus correct j'ai séparé la fonction php (je l'ai mise dans une classe) de la partie HTML et ajouté une css adaptée, du style de celle que l'on trouve sur la "pagination du style Digg".

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pagination+mail de confirmation [ par algantilla ] Bonsoir à tous!! j'aimerai bien faire une simple pagination pour bien ordonner les résultats d'une recherche mutlicritères en php!! j'ai déjà trouvé PHP Script de pargination [ par aboukam ] SALUT A TOUS J'ai un problème avec un script de pagination que j'ai télécharger pour adapter a mon site pour lister les informations de la base de don formulaire en PHP/MYSQL avec pagination [ par lola2006 ] Est-il possible d'avoir un formulaire PHP/mysql avec des boutons précedents et suivants pour la pagination. Car je dois mettre dans mon d=formulaire j problème pagination [ par noanis ] Bonjour, j'ai un petit problème concernant la pagination, car mes données sont affichées dans la partie centrale de ma page principale qui contient a ouverture fichiers PHP [ par hmeidatt ] hmeidatt J' ai besoin d'aide, je prie tout le monde de me renseigner sur astuces simple ou programmes simple pour ouvrir fichiers avec extension PHP.m un script de pagination en php [ par mirc00 ] Je travail sur un projet qui consiste à exploter les données d'un AS/400 en php après le succes . Après j'ai effectuer des requêtes sa marche mais sa Livre d'or et sécurité [ par spike666 ] Bonjour,J'ai un livre d'or assez simple mais je recois plein de message de spam dessus, n'y connaissant pas trop en php, j'ai quand meme reussis a blo pagination des resultats d'une recherche [ par bogossmaroc ] Salut les amis !...bref... j'ai un petit annuaire de cv, et je veux faire une recherche selon des critéres :Titre : tous / Mr / Mme / MlleVille : tous probleme de safemode - j'apprends seul le php... [ par ghouliass ] le prob: ca doit etre tt simple a mon avis, ,ais ce n'est pas simple de mettre le doitgs sur la question pour en "spotter" directement la reponse..Lor Galerie le plus simple possible! [ par virgile11 ] Bonjour, je suis incapable de programmer en php et je cherche un fichier php qui, plac&#233; dans un dossier contenant des images nomm&#233;es 001.jpg


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,200 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales