Pagination en PHP

ferkcap
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 476
Inscription: 14 Jan 2006

Pagination en PHP

Message le Dim Fév 12, 2006 10:10

Bonjour à tous,

Pour faire de la pagination sur un site, j'utilise le tuto de phpdebutant
-http://phpdebutant.org/article84.php

Cependant, ça ne me convient pas tout à fait car il affiche des série phénomènale de chiffre dans ma pagination, alors que je ne souhaite en afficher que 10.

Donc si on est sur la page 20, je voudrais afficher
15 16 17 18 19 20 21 22 23 24 25

Avez vous une idée pour faire cela ?

Je pense que ça se situe dans ma fonction mais ou ?

Code: Tout sélectionner
// Fonction qui affiche les liens vers les pages

function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Fév 12, 2006 10:23

Peut etre $limite = 0
Remplace par $limite = 10

ferkcap
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 476
Inscription: 14 Jan 2006

Message le Dim Fév 12, 2006 10:27

Non le limite correspond à la clause LIMIT dans la requête SELECT
Il indique donc qu'on cherche dans les tuplles à partir du 0

mumbly
WRInaute discret
WRInaute discret
 
Messages: 70
Inscription: 23 Nov 2005

Message le Dim Fév 12, 2006 11:07

Il faudrait que ta fonction ressemble à ca
Code: Tout sélectionner
function affichePages($nb,$page,$total) {
$nbpages=ceil($total/$nb);
$bornmax = $page +5;
$bornmin = $page -5;
if (empty($page)) $page=1;
echo '<table border = "0" ><tr>'."\n";
for ($a= $bornmin; $a<=$bornmax; $a++){
if (($a > 0) AND ($a <= $nbpages))
{
if ($a == $page)
echo '<td >'.$a.'</td>'."\n";
else
echo '<td ><a href = "page.php?'.$page.'&limite='.$a.'">'.$a.'</a></td>'."\n";
}
}
echo '</tr></table>'."\n";
}
affichePages($nb,$limite,$total)
}

ferkcap
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 476
Inscription: 14 Jan 2006

Message le Dim Fév 12, 2006 11:44

bon rien à faire, dans tous les sens j'arrive pas le faire fonctionner, connaitriez vous pas un tuto qui explique de A à Z ce que je voudrais faire ?
ça me permettrait de repartir à 0


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Fév 12, 2006 13:51

Et bien le truc de mumbly

Adapte le a ta structure tout devrait marcher.


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Message le Dim Fév 12, 2006 17:31

Avec PEAR::Pager en mode "Sliding":
http://pear.php.net/manual/en/package.html.pager.php


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités