pagination avec php & mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pagination avec php & mysql

voici un de mes codes que j'ai developper

par openup » 23 juin 2008, 16:52

if($ttact > $aff)
{
$npages=ceil($ttact/$aff);
echo "Page  : ";
if($npages < 16)
{
for($b=1; $b <= $npages; $b++)
{
if($b != $st)
echo '
<a href="?action=letter&page='.$b.$loc.'&affparpage='.$aff.'" class="page_link_top" title="page '.$b.'">'.$b.'</a>&nbsp;
';
else
echo '<a class="page_link_top" style="color:#00CC99;"><strong>'.$b.'</strong></a>&nbsp;
';
}
}
else
{
$debut=$st - 5;
if($debut<1)
$debut=1;
$fin=$st + 5;
if($fin>$npages)
$fin=$npages;

if($debut > 1 )
echo '
<a href="?action=letter&page=1'.$loc.'&affparpage='.$aff.'" class="page_link_top" title="page 1">1</a>&nbsp;...
';
for($b=$debut; $b <= $fin; $b++)
{
if($b != $st)
echo '
<a href="?action=letter&page='.$b.$loc.'&affparpage='.$aff.'" class="page_link_top" title="page '.$b.'">'.$b.'</a>&nbsp;
';
else
echo '<a class="page_link_top" style="color:#00CC99;"><strong>'.$b.'</strong></a>&nbsp;
';
}

if($fin < $npages)
echo '
...&nbsp;<a href="?action=letter&page='.$npages.$loc.'&affparpage='.$aff.'" class="page_link_top" title="page '.$npages.'">'.$npages.'</a>&nbsp;
';
}
}
avec
$aff= nombre d'affichage par page;
$ttact= nombre d'enregistrement(éponse de la requette);
sinon
si le nombre des pages est < a 16 on affiche tt les pages
sinon
on affiche
page : 1... 10 11 12 13 15 ... derniere page

par subversive_element » 19 juin 2008, 11:40

Si qqun l'avait sous la main ça m'arrangerait...mais bon. désolé pour le dérangement.

par Sékiltoyai » 19 juin 2008, 11:35

Bah c'est un forum phpBB2, il te suffit de télécharger les sources du forum sur le site officiel…

par subversive_element » 19 juin 2008, 10:58

Tu peux également jeter un œil du côté de la fonction de pagination de ce forum.
Est-elle disponible quelque part? Ce serait sympa si tu pouvais la poster.

Merci

par Alkann » 18 juin 2008, 13:53

Tu peux également jeter un œil du côté de la fonction de pagination de ce forum.

par subversive_element » 18 juin 2008, 12:45

Merci pour cette piste, je vais l'explorer et je reviens si jamais 8-)

par katagoto » 18 juin 2008, 10:14

Admettons 2 variables :
$NbPages;
$PageActuelle;

if($NbPages>9){// Si le nombre de pages est supérieure à 9
    if($NbPages==1) echo '<b>1</b> 2 3';
    elseif($PageActuelle==2) echo '1 <b>2</b> 3 4 ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.';
    elseif($PageActuelle==3) echo '1 2 <b>3</b> 4 5 ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.';
    elseif($PageActuelle==4) echo '1 2 3 <b>4</b> 5 6 ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.';
    elseif($PageActuelle==5) echo '1 2 3 4 <b>5</b> 6 7 ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.';
    elseif($PageActuelle==6) echo '1 2 3 4 5 <b>6</b> 7 8 ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.';
    elseif($PageActuelle>6 && $PageActuelle<($NbPages-6)) echo '1 2 3 ... '.$PageActuelle-2.' '.$PageActuelle-1.' <b>'.$PageActuelle.'</b> '.$PageActuelle+1.' '.$PageActuelle+2.' ... '.$NbPages-2.' '.$NbPages-1.' '.$NbPages.'
// Etc.
}
else echo '1 2 3 4 5 6 7 8';
C'est pas très éllaboré mais tu as compris ^^

pagination avec php & mysql

par subversive_element » 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:

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>"; } ?>