[Résolut]Système de pagination
Posté : 16 déc. 2010, 17:00
Bonjours à tous
j'ai actuelement grâce à un tutorial créer un système de pagination
le hic c'est qu'il est simple, et si on a 200 pages il va tout afficher de 1 à 200 ce qui fait un longue liste gênante et inutile de sur croix.
Je souhaiterais savoir si il est possible que vous m'aidiez à améliorer mon script afin d'obtenir un style de pagination un peu comme celui utiliser sur ce site, c'est a dire, limiter le nombre de 'lien" à afficher avant et après la page courante, et afficher les 3 dernières page si on est avant les "x+1" des dernières (x étant le nombre limite de liens affichés) et les 3 premières pages si on est à "x+1" des premières
exemples:
on est à la 15eme page et il y a en tous 27 pages, on souhaite afficher 3 liens de chaque côtés de la page courante (cela a partir de la 7eme page), on aurais
1/2/3/...12/13/14/15/16/17/18/...25/26/27.
Si on est à la 3eme page
1/2/3...25/26/27.
Si on est à la 6eme page.
1/2/3/4/5/6...25/26/27.
Et si on est à la dernière page (cela a partir de la 7eme page avant la fin)
1/2/3/...27.
Et si on est à la 22eme page
1/2/3/...22/23/24/25/26/27.
Voici mon script, je pense qu'il est vraiment à minimum, mais je connais pas encore toutes les fonction pour faire cela.
De plus je souhaite apprendre un peu plus mais j'ai pas trouver de tutoriel pour me dire comment créer cela.
Je veux bien copier coller un script, mais dans la première condition de pouvoir comprendre ce qui est fait et comment ça fonctionne.
C'est pourquoi je sollicite votre aide
voici le script
Merci de votre aide, et de prendre de votre temps pour y répondre.
Cordialement
j'ai actuelement grâce à un tutorial créer un système de pagination
le hic c'est qu'il est simple, et si on a 200 pages il va tout afficher de 1 à 200 ce qui fait un longue liste gênante et inutile de sur croix.
Je souhaiterais savoir si il est possible que vous m'aidiez à améliorer mon script afin d'obtenir un style de pagination un peu comme celui utiliser sur ce site, c'est a dire, limiter le nombre de 'lien" à afficher avant et après la page courante, et afficher les 3 dernières page si on est avant les "x+1" des dernières (x étant le nombre limite de liens affichés) et les 3 premières pages si on est à "x+1" des premières
exemples:
on est à la 15eme page et il y a en tous 27 pages, on souhaite afficher 3 liens de chaque côtés de la page courante (cela a partir de la 7eme page), on aurais
1/2/3/...12/13/14/15/16/17/18/...25/26/27.
Si on est à la 3eme page
1/2/3...25/26/27.
Si on est à la 6eme page.
1/2/3/4/5/6...25/26/27.
Et si on est à la dernière page (cela a partir de la 7eme page avant la fin)
1/2/3/...27.
Et si on est à la 22eme page
1/2/3/...22/23/24/25/26/27.
Voici mon script, je pense qu'il est vraiment à minimum, mais je connais pas encore toutes les fonction pour faire cela.
De plus je souhaite apprendre un peu plus mais j'ai pas trouver de tutoriel pour me dire comment créer cela.
Je veux bien copier coller un script, mais dans la première condition de pouvoir comprendre ce qui est fait et comment ça fonctionne.
C'est pourquoi je sollicite votre aide
voici le script
$count = "SELECT COUNT(Id) as NbPosts FROM Annonces";
$sqlcount = mysql_query($count) or die(mysql_error());
$datecount = mysql_fetch_assoc($sqlcount);
$NbPosts = $datecount['NbPosts'];
$PerPage = 4;
$NbPage = ceil($NbPosts/$PerPage);
if (isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$NbPage)
{
$CuPage = $_GET['p'];
}
else
{
$CuPage = 1;
}
echo '<h2>Gérer toutes les annonces</h2>';
for ($i=1;$i<=$NbPage;$i++)
{
if ($i==$CuPage)
{
echo ' <a style="text-decoration:none;color:#0000ff;">'.$i.'</a> / ';
}
else
{
echo ' <a style="text-decoration:none;color:#ff0000;" href="index.php?g=voirannonces&p='.$i.'">'.$i.'</a> / ';
}
}
?>
<table style="background:#000000;width:800px;">
<?php
$post = mysql_query("SELECT * FROM Annonces ORDER BY Date DESC LIMIT ".(($CuPage-1)*$PerPage).",$PerPage");
while ($voir = mysql_fetch_assoc($post))
{
.... On affiche comme d'habitudes les informations demandés....
}
Il y a d'autre choses avant le while, mais je l'ai enlever pour éclaircir le script.Merci de votre aide, et de prendre de votre temps pour y répondre.
Cordialement