Pagination, point de suspension si trop de pages
Bonjour, je fais face à un problème, je suis actuellement entrain d'améliorer mon système de pagination je lui ai donc rajouté 4 boutons en plus :
- Suivant
- Précédent
- Dernière page
- Première page
Or j'aimerais maintenant pouvoir gérer une grosse quantité d'utilisateurs dans ma base de donnée et si j'importe trop d'utilisateurs, la pagination devient rapidement ingérable et inutile au vu des nombres de page sauf que je n'arrive pas à trouver la condition me permettant de placer des petits points par exemple au milieu de ma pagination si page > 10 ou quelque chose comme ça..
Si quelqu'un peut m'aider, voici le code entier de la pagination :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| // Requête : TOUT
$requete_total = $db->prepare($sql_requete);
$requete_total->execute($sql_params);
$elem_total = $requete_total->rowCount();
// ----------------------
// Pagination
$elem_page = 10;
$page_total = ceil($elem_total/ $elem_page);
if (!empty($_GET['page']) && $_GET['page'] > 0) {
$pageCourante = intval($_GET['page']);
} else {
$pageCourante = 1;
}
if ($pageCourante>$page_total) {
$pageCourante = $page_total;
}
$depart_page = ($pageCourante-1) * $elem_page;
// ----------------------
// Requête : pour cette page
$sql_requete_page = $sql_requete . " LIMIT ".$depart_page." , ".$elem_page." ";
$requete_page = $db->prepare($sql_requete_page);
$requete_page->execute($sql_params); |
Avec l'ui de la pagination :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <ul class="pagination justify-content-center">
<li class="page-item">
<li class="page-item"><a class="page-link" href="list.php?page=<?php echo 1; ?>"><i class="fas fa-angle-double-left"></i></a>
<li class="page-item"><a class="page-link" href="list.php?page=<?php echo $pageCourante - 1; ?>"><i class="fas fa-chevron-left"></i></a>
<?php for ($i=1; $i<=$page_total; $i++) { ?>
<?php
if ($i == $pageCourante) { ?>
<li class="page-item active"><a class="page-link" href="list.php?page=<?php echo $i; ?>"><?php echo "$i"; ?></a>
<?php } else { ?>
<li class="page-item"><a class="page-link" href="list.php?page=<?php echo $i; ?>"><?php echo "$i"; ?></a>
<?php }
}?>
<li class="page-item"><a class="page-link" href="list.php?page=<?php echo $pageCourante + 1; ?>"><i class="fas fa-chevron-right"></i></a>
<li class="page-item"><a class="page-link" href="list.php?page=<?php echo $i; ?>"><i class="fas fa-angle-double-right"></i></a>
</li>
</ul> |
En vous remerciant,