限制分页中的页数

时间:2017-10-18 10:58:50

标签: php mysqli pagination

我正在努力创建我的第一个“新闻页面”。我试图做一个简单的分页,而不是滚动到永恒,以获得更好的用户体验。

到目前为止,我已成功:

  • 每个网站显示X个新闻数
  • 在底部显示页面,以滚动

我缺少的是,如果有很多新闻,将会显示大量的页面。如果我能够限制显示的页面数量会更好:

例如;如果我在第5页,我应该能够看到,第2,3,4,5,7,8,8页。

如何将其实现到我的代码中?我对此非常不确定。

我的代码

<?

$sqlDos = "SELECT COUNT(id) FROM articles";


$rs_result = mysqli_query($con, $sqlDos);  
$row = mysqli_fetch_row($rs_result);  
$total_records = $row[0];  

$total_pages = ceil($total_records / $limit);  
$pagLink = "<div class='pagination'>"; 


for ($i=1; $i<=$total_pages; $i++) {  
    if ($i == $page) {
        $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else {
        $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>";
    }
};


echo $pagLink . "</div>"; 

?>

我希望你能花时间解释如何做到这一点,因为这是我的第一个项目。

非常感谢! : - )

修改 我只显示了相关的代码,因此可能缺少某些变量来显示它们是什么 - 如果您认为某些内容丢失,请告诉我们。)

1 个答案:

答案 0 :(得分:0)

将当前页码发布到PHP脚本并应用以下逻辑:

$startPage = 1;
$endPage   =  $page+ 3;
if($currentPageNo > 3){
   $startPage =  $page - 3;
}

for ($i=$startPage; $i<=$endPage; $i++) {  
    if ($i == $page) {
        $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else {
        $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>";
    }
};