pagination avec php & mysql
Posté : 18 juin 2008, 09:57
Bonjour,
Je cherche à organiser mes résultats de requête mysql de façon propre, mais j'ai beaucoup de résultats. J'ai fait plusieurs recherches sur le web sans succès... Je souhaiterais savoir comment arriver au résultat suivant en ce qui concerne la pagination:
<< 1 2 3 4 ... 59 60 61 >>
J'aimerais donc afficher seulement les premières et dernières pages de recherche (bien sûr les numéros de page évoluent en fonction d'où on se trouve, un peu à la manière de ce site). Actuellement, j'ai une centaine de numéros et ça le fait vraiment pas. Quelle méthode devrais-je appliquer? Je ne suis pas à la recherche de scripts tous faits, je cherche plutôt à comprendre ce que je fais...
Merci et désolé si cette question a déjà été posée souvent.
Voici mon code actuel, assez basique:
Je cherche à organiser mes résultats de requête mysql de façon propre, mais j'ai beaucoup de résultats. J'ai fait plusieurs recherches sur le web sans succès... Je souhaiterais savoir comment arriver au résultat suivant en ce qui concerne la pagination:
<< 1 2 3 4 ... 59 60 61 >>
J'aimerais donc afficher seulement les premières et dernières pages de recherche (bien sûr les numéros de page évoluent en fonction d'où on se trouve, un peu à la manière de ce site). Actuellement, j'ai une centaine de numéros et ça le fait vraiment pas. Quelle méthode devrais-je appliquer? Je ne suis pas à la recherche de scripts tous faits, je cherche plutôt à comprendre ce que je fais...
Merci et désolé si cette question a déjà été posée souvent.
Voici mon code actuel, assez basique:
Code : Tout sélectionner
<?
$nombre=ceil($n_r/$limit);
if($debut>0)
{
$page = ($debut/$limit)+1;
echo "<a href=f_b.php?action=search&control=1&debut=".($debut-$limit)."&page=".$page." class=\"limit\"><img src=\"images/fleche_ver_g.gif\" border=0></a> ";
}
if ($nombre>1)
{
for($i=1; $i<=$nombre; $i++)
{
if($page==$i){
echo "<a href=f_b.php?action=search&control=1&tri=".$tri."&ascdesc=".$ascdesc."&debut=".(($i-1)*$limit)."&page=".$i." class=\"limit\" style=\"font-size:14px;text-decoration:underline;font-weight:bold;color:black\">".$i."</a> ";
}else{
echo "<a href=f_b.php?action=search&control=1&tri=".$tri."&ascdesc=".$ascdesc."&debut=".(($i-1)*$limit)."&page=".$i." class=\"limit\" style=\"font-size:11px;text-decoration:none;color:black\">".$i."</a> ";
}
}
}
if(($debut+$limit)<$nrows)
{
$page = ($debut/$limit)+1;
echo "<a href=f_b_f.php?action=search&control=1&tri=".$tri."&ascdesc=".$ascdesc."&debut=".($debut+$limit)."&page=".$page." class=\"limit\"><img src=\"images/fleche_ver_d.gif\" border=0></a>";
}
?>