Système de pages

Eléphanteau du PHP | 16 Messages

24 oct. 2011, 22:53

Bonjour à tous !!
J'ai fait un système de pages pour mes commentaires dans un article posté.
Néanmoins si il y a beaucoup de pages, ça prend toute la fenête

Je voudrai que les pages soivent, progressives
Que ça affiche 5 pages
et exemple: si on va a la page 2 , on ne voit plus la page 1
Et faire premier et dernier

Un bout de code:

$articleid = $news_article_id;
if(isset($_GET['page'])) { //On récupère le numéro de la page via un paramètre GET
    $page = $_GET['page'];
    }else{
    $page = 1; // La page est à défaut  1
    }

    $Commentaire = dbquery("SELECT * FROM site_news_comments WHERE article='" . $articleid . "'"); // Requête
    $count = mysql_num_rows($Commentaire); // Nombres de résultats
    $pages = ceil($count / 5); // Calculation du nombre de pages
    $offset = $page - 1;          //
    $offset = $offset * 5;      // ici, on calcul où l'on reprend la récupération des commentaires selon la page
    $Commentaire = dbquery("SELECT * FROM site_news_comments WHERE article = '" . $articleid . "' ORDER BY id ASC LIMIT 5 OFFSET " . $offset); // On récupère les commentaires selon la page
for ($i = 1; $i <= $pages; $i++) {
if ($i != $page) {
echo'<a name="pages" href="' . WWW . '/article.php?id=' . $articleid . '&page='.$i.'">'.$i.'</a>&nbsp;&nbsp;';
}
else { echo $i . "&nbsp;&nbsp;"; } 
}

ViPHP
xTG
ViPHP | 7331 Messages

25 oct. 2011, 07:34

En gros n'afficher un lien que vers les pages suivantes ?
if( $i >= $page ) {
  if ($i != $page) {
    echo'<a name="pages" href="' . WWW . '/article.php?id=' . $articleid . '&page='.$i.'">'.$i.'</a>&nbsp;&nbsp;';
  }
  else 
  { 
    echo $i . "&nbsp;&nbsp;"; 
  } 
}
Pour ton lien "aller à la première page" il suffit de le mettre en dehors de la boucle sous une condition vérifiant que le nombre de page dépasse 1.

CompteVisualDev
Invité n'ayant pas de compte PHPfrance

25 oct. 2011, 13:23

En faite, à chaque fois que je vais sur une page, si je suis sur la dernière, on voit pas les autres

En faite je cherche à afficher 5 pages, dès que je suis sur la cinquième, la 1 ère disparait, etc...

peut être avec
if($i >= 5)

CompteVisualDev
Invité n'ayant pas de compte PHPfrance

25 oct. 2011, 13:29

J'aimerai également qui si on redescend avec les pages, on revoit 1, etc...

ViPHP
xTG
ViPHP | 7331 Messages

25 oct. 2011, 14:50

Pas clair tout ça... Tu veux afficher juste quelques pages autour de la page courante ?

Genre : [Première] [...] [10] [11] [12] [13] [14] [...] [Dernière]

CompteVisualDev
Invité n'ayant pas de compte PHPfrance

25 oct. 2011, 15:36

Pas clair tout ça... Tu veux afficher juste quelques pages autour de la page courante ?

Genre : [Première] [...] [10] [11] [12] [13] [14] [...] [Dernière]
Oui dans ce style là ;)

ViPHP
xTG
ViPHP | 7331 Messages

25 oct. 2011, 17:04

Dans ce cas c'est basé sur le même style de condition que je t'ai proposé plus haut. Sauf que cette fois ci il est borné.

Code : Tout sélectionner

SI (page - 5) > i && (page + 5) < i Afficher i