我在 PHP 中有一个分页,如下图所示:
但是,当我在数据库中输入更多记录时,页数会增加,因为它每页显示 10 条记录。我希望,例如,在我的分页中,它会显示从 1 到 10,当它达到 10 时,它会显示从 10 到 20 ......我不知道我是否在解释自己。
我留下了我使用的 PHP 代码。
<nav aria-label="Page navigation" class="text-center">
<ul class="pagination">
<?php
if ($total_paginas > 1) {
if ($pagina != 1)
echo '<li><a href="'.$url.'?pagina='.($pagina-1).'" aria-label="Previous"><span aria-hidden="true">«</span></a></li>';
for ($i = 1; $i <=$total_paginas; $i++){
if ($pagina == $i)
echo '<li class="active"><a href="#">'.$pagina.'</a></li>';
else
echo '<li><a href="'.$url.'?pagina='.$i.'">'.$i.'</a></li>';
}
if ($pagina != $total_paginas) {
echo '<li><a href="'.$url.'?pagina='.($pagina+1).'"><span aria-hidden="true">»</span></a></li>';
}
}
?>
</ul>
</nav>
在这里,我会根据您的代码为您提供一个选项,并且对其进行最少的更改。
这个想法很简单(虽然我不知道我是否会很好地解释它),它包含以下内容:始终显示最多 10 个链接,这些链接将以该单元开头并以所述单元+9(或总数如果 unit+9 是老年人,则为页面)。这意味着对于第 5 页,显示的链接将从 1 到 10;对于第 13 页,链接将从 11 到 20 等。
为此,有必要: 计算要显示的第一个数字和最后一个数字是多少,并使循环仅在它们之间。然后,在显示箭头时,需要检查第一页是否小于 10(在这种情况下,左侧的箭头不会显示)或者最后一页是否等于总页数(在在这种情况下不会显示)。向右的箭头)。
这是如何完成的示例:
做一些类似于 Alvaro 所做的事情,以您的代码为基础,这是一个略有不同的版本,目标是:
这个答案的想法是为“将来”遇到这个问题的人添加一个选项。
同样是改变一点你现在使用的概念。我这样做的方式是分页在一个类中完成,然后在 中完成
PHP
,我称之为分页。我有这个文件用于连接,但是如果你在互联网上搜索,
PDO
你肯定会找到它mysql
mysqli
代码中的调用将是: