PHP开发简单留言本之分页显示留言功能

要在页面显示所有的用户留言,并通过分页显示。

分页的一般思路是:先确定每页需要显示的留言数目,拿总的留言数除以每页显示的留言数,得到总页数,如果不能整除,余数单独成为一个页面,总页数+1。

6.png

继续使用上一节设置的数据库的类LyDB。

这里设置每页显示3条数据

<?php
$page_size=3;
?>

通过一个公共函数把每页显示数page_size,留言数ly_count,总页数page_count放到一个array数组中

<?php
class LyDb{
//....省略
public function select_page_info(){
   $sql = "select count(*) as pagecount from ly";
   $query = mysqli_query($this->link,$sql);
   $row = mysqli_fetch_assoc($query);
   $ly_count=$row["pagecount"];
   $page_count=($ly_count%$this->page_size==0)?($ly_count/$this->page_size):($ly_count/$this->page_size+1);
   $page_info=array("ly_count"=> $ly_count,"page_count"=>(int)$page_count,"page_size"=>$this->page_size);
   return $page_info;
  }
//......省略  
}
?>

通过一个公共函数来设置当前页$page_no

判断当前页小于1时,继续显示第一页,当前页大于所得总页数时,显示最后一页

确定首页和末页

<?php
lass LyDb{
//....省略
public function select_page_result(&$page_no){
   $page_info=$this->select_page_info();
   if(!isset($page_no))$page_no=1;
   else if($page_no<1)$page_no=1;
   else if($page_no>$page_info["page_count"])$page_no=$page_info["page_count"];
   
   $first=($page_no-1)*$this->page_size;
   $sql="select * from ly order by id desc limit $first,$this->page_size ";
   $query=mysqli_query($this->link,$sql);
   $page_result=array("page_data"=>$query,"page_info"=>$page_info,"page_no"=>$page_no);
   return $page_result;   
}
//......省略  
}
?>

在前端页面中添加分页功能

<div class="pagination" >
 当前第<?php echo $page_result["page_no"];?>页/
 共<?php echo $page_result["page_info"]["page_count"];?>页/
 每页显示<?php echo $page_result["page_info"]["page_size"]; ?>条/
 共<?php echo $page_result["page_info"]["ly_count"]; ?>条留言
<a href="index.php?pn=<?php echo ($page_result['page_no']-1);?>">上一页</a>
<a href="index.php?pn=<?php echo ($page_result['page_no']+1);?>">下一页</a>
<a href="index.php?pn=1">首页</a>
<a href="index.php?pn=<?php echo ($page_result['page_info']['page_count']);?>">尾页</a>
</div>
继续学习
||
​<div class="pagination" > 当前第<?php echo $page_result["page_no"];?>页/ 共<?php echo $page_result["page_info"]["page_count"];?>页/ 每页显示<?php echo $page_result["page_info"]["page_size"]; ?>条/ 共<?php echo $page_result["page_info"]["ly_count"]; ?>条留言 <a href="index.php?pn=<?php echo ($page_result['page_no']-1);?>">上一页</a> <a href="index.php?pn=<?php echo ($page_result['page_no']+1);?>">下一页</a> <a href="index.php?pn=1">首页</a> <a href="index.php?pn=<?php echo ($page_result['page_info']['page_count']);?>">尾页</a> </div>
提交重置代码