Problème d'affichage page par page / Pagination
Fermé
hankabyl
Messages postés
20
Date d'inscription
mardi 10 septembre 2013
Statut
Membre
Dernière intervention
24 octobre 2020
-
Modifié le 9 févr. 2018 à 14:42
hankabyl Messages postés 20 Date d'inscription mardi 10 septembre 2013 Statut Membre Dernière intervention 24 octobre 2020 - 11 févr. 2018 à 12:32
hankabyl Messages postés 20 Date d'inscription mardi 10 septembre 2013 Statut Membre Dernière intervention 24 octobre 2020 - 11 févr. 2018 à 12:32
A voir également:
- Problème d'affichage page par page / Pagination
- Supprimer une page word - Guide
- Page d'accueil iphone - Guide
- Traduire une page web - Guide
- Créer une page facebook - Guide
- Word numéro de page 1/2 - Guide
5 réponses
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
9 févr. 2018 à 20:40
9 févr. 2018 à 20:40
bonsoir, tu veux dire que, malgré
si oui, es-tu certain de la valeur de $nbpages?
si non, peux-tu expliquer plus factuellement?
while($numeroPages <= $nbpages), $numeroPages dépasse $nbpages?
si oui, es-tu certain de la valeur de $nbpages?
si non, peux-tu expliquer plus factuellement?
hankabyl
Messages postés
20
Date d'inscription
mardi 10 septembre 2013
Statut
Membre
Dernière intervention
24 octobre 2020
Modifié le 10 févr. 2018 à 14:44
Modifié le 10 févr. 2018 à 14:44
Bonjour monsieur , je vous remercie beaucoup de m'avoir répondu .En bref et franchement , j' ai rien compris parce que je suis débutant et faible en php ( seulement si quelqu'un me montre quelque chose à supprimer, ajouter ou modifier ,dans ce cas je peux le faire .merci monsieur
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
10 févr. 2018 à 16:20
10 févr. 2018 à 16:20
dans ce cas, il serait utile que tu expliques factuellement ce que tu obtiens et ce que tu souhaites obtenir.
hankabyl
Messages postés
20
Date d'inscription
mardi 10 septembre 2013
Statut
Membre
Dernière intervention
24 octobre 2020
Modifié le 11 févr. 2018 à 22:03
Modifié le 11 févr. 2018 à 22:03
Bonjour monsieur ;je m'éxcuse de vous avoir dérangé . J'ai bien placé la pagination , ça fonctionne très bien ( j'ai bien limiter le nombre d'enregistrement par page et afficher les liens des pages .Le problème que tous les liens s'affiche sur la page , c'est à dire le nombre de pages n'est pas limité . Mio, je voudrais obtenir une pagination avec des points de suspension : par exemple << 1234.........25 25 27 28 >>
Voila le lien si vous voulez tester www.bravoforum.topsawa.com . et voila les page de ma pagination .
1) page index.php
Et voila ma page fonction.php
et je vous remercie d'avance .
Voila le lien si vous voulez tester www.bravoforum.topsawa.com . et voila les page de ma pagination .
1) page index.php
<html> <head> <style type="text/css"> .menu{ width: 20px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; font-style: normal; text-decoration: none; } .menu ul{ margin: 0; padding: 0; float: left; width: 20px; background: #000000; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #0000FF; border-right-color: #0000FF; border-bottom-color: #0000FF; border-left-color: #0000FF } .menu ul li{ display: inline; } .menu ul li a{ float: left; color: #FFFFFF; padding: 5px 6px; text-decoration: none; border-right-width: 1px; border-right-style: solid; border-right-color: #000000; } .menu ul li a:visited{ color: #FFFFFF; } .menu ul li a:hover, .menu ul li .selected{ color: #000000 !important; padding-top: 5px; padding-bottom: 5px; background: #FFFF35; } </style> </head> <body> <?php require 'header.html'; require 'config.php'; // initialisation des variables // on va afficher 5 résultats par page. $nombre = 5; // si limite n'existe pas on l'initialise à zéro if (!$limite) $limite = 0; // on cherche le nom de la page. $path_parts = pathinfo($_SERVER['PHP_SELF']); $page = $path_parts["basename"]; $link = mysql_connect (localhost,user,pass) or die ('Erreur : '.mysql_error() ); mysql_select_db(base_donnees) or die ('Erreur :'.mysql_error()); // requête SQL qui compte le nombre total // d'enregistrements dans la table. $select = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0]; // vérifier la validité de notre variable // $limite; require 'fonctions.php'; // initialisation des variables // on va afficher 5 résultats par page. $nombre = 5; // si limite n'existe pas on l'initialise à zéro if (!$limite) $limite = 0; // on cherche le nom de la page. $path_parts = pathinfo($_SERVER['PHP_SELF']); $page = $path_parts["basename"]; // connection à la DB $link = mysql_connect (localhost,user,pass) or die ('Erreur : '.mysql_error() ); mysql_select_db(topsawa_forum) or die ('Erreur :'.mysql_error()); // requête SQL qui compte le nombre total // d'enregistrements dans la table. $select = 'SELECT count(id) FROM forum_sujets'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0]; // vérifier la validité de notre variable // $limite; $verifLimite= verifLimite($limite,$total,$nombre); // si la limite passée n'est pas valide on la remet à zéro if(!$verifLimite) { $limite = 0; } // requête SQL qui ne prend que le nombre // d'enregistrement necessaire à l'affichage. $select = 'select id,auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC limit '.$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); ?> <br /> <a href="insert_sujet.php"><img src="images/Hb.png" alt="cliquer"/></a> <?php // si la limite passée n'est pas valide on la remet à zéro if(!$verifLimite) { $limite = 0; } // requête SQL qui ne prend que le nombre // d'enregistrement necessaire à l'affichage. $select = 'select id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC limit '.$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); // si on a récupéré un resultat on l'affiche. if($total) { // début du tableau echo '<p align="center">Page : '; echo '<table bgcolor="#660000 width="700" border="20">'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#669999"><div style="text-align: center;"><b><big><big><u>auteur</u></big></big></b></td>'; echo '<td bgcolor="#669999"><div style="text-align: center;"><b><big><big><u>titre</u></big></big></b></td>'; echo '<td bgcolor="#669999"><div style="text-align: center;"><b><big><big><u>date_derniere_reponse</u></big></big></b></big></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#ffffff"><div style="text-align: center;"><big>'.$row['auteur'].'</big></td>'; echo '<td bgcolor="#ffffff"><big><a href="./lire_sujet.php?id_sujet_a_lire=' , $row['id'] , '">' , htmlentities(trim($row['titre'])).'</a></td>'; echo '<td bgcolor="#ffffff"><div style="text-align: center;"><big>'.$row['date_derniere_reponse'].'</big></td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; } else echo 'Pas d\'enregistrements dans cette table...'; mysql_free_result($result); // si le nombre d'enregistrement à afficher // est plus grand que $nombre if($total > $nombre) { // affichage des liens vers les pages affichePages($nombre,$page,$total); // affichage des boutons } // page precedante et page suinte if($limite != 0) { echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>'; } if($limitesuivante < $total) { echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>'; } ?> </body> </html>
Et voila ma page fonction.php
<?php //récupération de $limite if(isset($_GET['limite'])) $limite=$_GET['limite']; else $limite=0; function verifLimite($limite,$total,$nombre) { // je verifie si limite est un nombre. if(is_numeric($limite)) { // si $limite est entre 0 et $total, $limite est ok // sinon $limite n'est pas valide. if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) { // j'assigne 1 à $valide si $limite est entre 0 et $max $valide = 1; } else { // sinon j'assigne 0 à $valide $valide = 0; } } else { // si $limite n'est pas numérique j'assigne 0 à $valide $valide = 0; } // je renvois $valide return $valide; } function affichePages($nb,$page,$total) { $nbpages=ceil($total/$nb); $numeroPages = 1; $compteurPages = 1; $limite = 0; echo '<table border = "10" ><tr>'."\n"; while($numeroPages <= $nbpages) { echo '<td ><div class="menu"> <ul> <li><center><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></center></li> </ul> </div></td>'."\n"; $limite = $limite + $nb; $numeroPages = $numeroPages + 1; $compteurPages = $compteurPages + 1; if($compteurPages == 10) { $compteurPages = 1; echo '<br>'."\n"; } } echo '</tr></table>'."\n"; } // page precedante et page suinte $limitesuivante = $limite + $nombre; $limiteprecedente = $limite - $nombre; ?>
et je vous remercie d'avance .
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
10 févr. 2018 à 20:47
10 févr. 2018 à 20:47
donc tu voudrais avoir uniquement les 4 premiers et les 4 derniers liens?
pourquoi n'as-tu pas expliqué cela dès le départ?
as-tu essayé de programmer cela?
peut-être ainsi:
pourquoi n'as-tu pas expliqué cela dès le départ?
as-tu essayé de programmer cela?
peut-être ainsi:
function affichePages($nb,$page,$total) { $nbpages=ceil($total/$nb); $numeroPages = 1; $limite = 0; echo '<table border = "0" ><tr>'."\n"; while($numeroPages <= $nbpages) { if ($numeroPages <=4 or $numeroPages >= $nbpages-4) { echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n"; } $limite = $limite + $nb; $numeroPages = $numeroPages + 1; } echo '</tr></table>'."\n"; }
hankabyl
Messages postés
20
Date d'inscription
mardi 10 septembre 2013
Statut
Membre
Dernière intervention
24 octobre 2020
Modifié le 11 févr. 2018 à 22:01
Modifié le 11 févr. 2018 à 22:01
Merci beaucoup cher monsieur, j'ai essayé le bout de code que vous m'avez envoyé, c'est bien ça ce que je cherche, mais il n'y'a pas de points de suspension entre les quatre premiers numéro de page et le reste des pages; alors s'il n'a pas de points de suspension ,on peut pas trouver et cliquer sur les pages sautées.
1 2 3 4 17 18 19 20 21
si vous voulez tester en haut de la barre google www.bravoforum.topsawa.com
Et voila ma nouvelle page : fonction.php
et merci beaucoup.
1 2 3 4 17 18 19 20 21
si vous voulez tester en haut de la barre google www.bravoforum.topsawa.com
Et voila ma nouvelle page : fonction.php
<?php //récupération de $limite if(isset($_GET['limite'])) $limite=$_GET['limite']; else $limite=0; function verifLimite($limite,$total,$nombre) { // je verifie si limite est un nombre. if(is_numeric($limite)) { // si $limite est entre 0 et $total, $limite est ok // sinon $limite n'est pas valide. if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) { // j'assigne 1 à $valide si $limite est entre 0 et $max $valide = 1; } else { // sinon j'assigne 0 à $valide $valide = 0; } } else { // si $limite n'est pas numérique j'assigne 0 à $valide $valide = 0; } // je renvois $valide return $valide; } function affichePages($nb,$page,$total) { $nbpages=ceil($total/$nb); $numeroPages = 1; $limite = 0; echo '<table border = "0" ><tr>'."\n"; while($numeroPages <= $nbpages) { if ($numeroPages <=4 or $numeroPages >= $nbpages-4) { echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n"; } $limite = $limite + $nb; $numeroPages = $numeroPages + 1; } echo '</tr></table>'."\n"; } // page precedante et page suinte $limitesuivante = $limite + $nombre; $limiteprecedente = $limite - $nombre; ?>
et merci beaucoup.
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
11 févr. 2018 à 11:00
11 févr. 2018 à 11:00
ah bon, tu souhaites avoir des points de suspension sur lesquels on peut cliquer pour trouver les pages manquantes. pourquoi n'as-tu pas expliqué cela au départ?
par ailleurs, je te suggère de commencer par des exercices plus simples, qui vont te permettre de progresser, avant de faire des exercices plus compliqués.
par ailleurs, je te suggère de commencer par des exercices plus simples, qui vont te permettre de progresser, avant de faire des exercices plus compliqués.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hankabyl
Messages postés
20
Date d'inscription
mardi 10 septembre 2013
Statut
Membre
Dernière intervention
24 octobre 2020
11 févr. 2018 à 12:32
11 févr. 2018 à 12:32
Bonjour monsieur,et je vous remercie pour votre aide .