Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2007, 12h39   #1
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Par défaut Améliorer la pagination

Bonjour.

J'ai une pagination qui fonctionne mais je voudrais l'améliorer.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
	//*****************************************
	//	 définition de la pagination
	//*****************************************
	$lignesParPage=10;
	$retour_total = mysql_query("SELECT COUNT(*) AS total FROM titres_proprietaires");
	$donnees_total = mysql_fetch_assoc($retour_total);
	$total = $donnees_total['total'];
	$nombreDePages = ceil($total/$lignesParPage);
	if(isset($_GET['lapage'])) // Si la variable $_GET['lapage'] existe...
	{
     		$pageActuelle=intval($_GET['lapage']);
		if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     		{
          		$pageActuelle=$nombreDePages;
     		}
	}
	else // Sinon
	{
    		$pageActuelle=1; // La page actuelle est la n°1    
	}
	$premiereLigne=($pageActuelle-1)*$lignesParPage; // On calcule la première entrée à lire
 
les lignes de la page
 
echo "<p align='center'>Page : ";
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] '; 
     }	
     else //Sinon...
     {
          echo ' <a href="index.php?page=mes_films&amp;lapage='.$i.'">'.$i.'</a>';
     }
}
echo '</p>';
}
Je voudrais afficher quelque chose comme ça :
page : [ 1 ] 2 3 4 5 6 7 8 9 10 suivante

quand je clique par ex sur la page 7 je voudrais :

page : précédente [ 7 ] 8 9 10 11 12 13 14 15 16 suivante

Est ce que quelqu'un peut m'aider ?

Merci d'avance
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 22h47   #2
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
Bonsoir,

Pour faire évoluer ton code dans ce sens, il faut faire des modifications à partir de cette ligne : for($i=1; $i<=$nombreDePages; $i++)

Tu dois d'abord déclarer une constante pour déterminer le nombre de numéros que tu souhaites dans ta pagination, donc là visiblement c'est 10.

Après concernant le for cité plus haut tu ne dois plus boucler sur le nombre de tuples que te retourne ta requête mais sur la constante "nombre de numéros" en prenant une "marge négative avant" (pour le "précédent") si et seulement si la page courante est différente de 1. Et une marge positive après (pour le "suivant") si et seulement si la page courante est différente du nombre total de page.

Si je ne me trompe pas çà devrait donner un quelque chose comme çà pour la boucle :
Code :
for($i=-1; $i<=NB_NUMEROS; $i++) {}
Le if testant si $i est bien la page courante peut rester.

Par contre je serais toi je mettrais çà sous forme de fonction, il y a de forte chance que tu t'en serves plus d'une fois...
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h53.


 
 
 
 
Partenaires

Hébergement Web