페이징 클래스 캡슐화
페이징 클래스를 캡슐화하는 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='<a href="'.$url.'1">[首页]</a>'; //拼接上一页 $prev=($this->current==1)?'[上一页]':'<a href="'.$url.($this->current-1).'">[上一页]</a>'; //拼接下一页 $next=($this->current==$this->pagenum)?'[下一页]':'<a href="'.$url.($this->current+1).'">[下一页]</a>'; //拼接尾页 $last='<a href="'.$url.$this->pagenum.'">[尾页]</a>'; //组合最终样式 return "当前为{$this->current}/{$this->pagenum} {$first} {$prev} {$next} {$last}"; } }
1, 페이징에 필요한 기본 속성이 무엇인지 알아야 합니다
private $ total; //총 레코드 수(데이터베이스 쿼리를 통해 획득)
private $pagesize; //각 페이지에 표시되는 항목 수(필요에 따라 설정)
private $current //현재 페이지(기본값) 는 첫 번째 페이지이며, 다음 페이지를 클릭할 때마다 1씩 증가합니다. )
private $pagenum; //전체 페이지 수(전체 레코드 수/각 페이지에 표시되는 항목 수를 반올림하여 계산) 또는 (총 레코드 수-1/각 페이지에 표시되는 항목 수)+1)
2, 표시 페이지는 다음과 같습니다.