创建page.class.php文件进行分页类的封装处理:
具体代码如下:<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/3/5 0005
* Time: 下午 5:08
*/
class Page{
private $total; //总记录数
private $pagesize;//每页显示的条数
private $current; //当前页
private $pagenum; //总的页数
public function __construct($total,$pagesize,$current)
{
$this->total=$total;
$this->pagesize=$pagesize;
$this->current=$current;
$this->pagenum=ceil($this->total/$this->pagesize);
}
//获取SQL中的limit条件
public function getLimit(){
//计算limit条件
$lim=($this->current-1)*$this->pagesize; //每页显示开始的记录数
return $lim.','.$this->pagesize;
}
//获得url参数,用于在生成分页链接时保存原有的GET参数
private function getUrlParams(){
//去掉page参数并重新生成GET参数字符串
$params=$_GET;
unset($params['page']);
return http_build_query($params);
}
//获取分页链接
public function showPage(){
//如果少于1页则不显示分页导航
if($this->pagenum<=1){
return '';
}
//获取原来的GET参数
$url=$this->getUrlParams();
//拼接URL参数
$url=$url?"?$url&page=":"?page=";
//拼接"首页"
$first='[首页]';
//拼接上一页
$prev=($this->current==1)?'[上一页]':'current-1).'">[上一页]';
//拼接下一页
$next=($this->current==$this->pagenum)?'[下一页]':'current+1).'">[下一页]';
//拼接尾页
$last='pagenum.'">[尾页]';
//组合最终样式
return "当前为{$this->current}/{$this->pagenum} {$first} {$prev} {$next} {$last}";
}
}
1,需要知道分页需要哪些基本属性
private $total; //总记录数(通过查询数据库获取)
private $pagesize;//每页显示的条数(自己根据需要设置)
private $current; //当前页(默认为第一页,每次点击下一页即加1)
private $pagenum; //总的页数(通过 总记录数/每页显示的条数 向上取整 或者通过 (总记录数-1/每页显示的条数)+1)来计算得出
2,展示页面如下: