//

Information for details

php常用类分享之分页类

分页处理类:

功能:实现分页技术。

本文实例讲述了PHP实现的简单分页类及其详细的使用方法。分享给大家供大家参考,具体如下

<?php
/**
 * 分页类
*/

class page{
    
    protected $url;//传入的URL
    protected $count;//总页数
    public $num;//每页显示的数量
    protected $total;//总记录数,总条数              
    protected $prevnum;//上一页数
    protected $nextnum;//下一页数      
    protected $prev='上一页';//上一页
    protected $next='下一页';//下一页
    protected $first='首页';//首页          
    protected $last='尾页';//尾页
    protected $start;//开始记录数
    protected $end;//结束记录数
    protected $page;//当前页

    //初始化成员方法 URL 总数 每页显示数
    public function __construct($url,$total,$num=10){
        
        $this->url=$url;//填入的url地址
        $this->total=$total;//条目总数
        $this->num=$num;//每页显示数
        $this->page=$_GET['page']?$_GET['page']:1;//获得当前的页数
        $this->count=$this->getcount();//总页数
        $this->prevnum=$this->getprevnum();//获得上一页数
        $this->nextnum=$this->getnextnum();//获得下一页数
        $this->start=$this->getstart();//开始记录数
        $this->end=$this->getend();//结束记录数
        var_dump($this->page);
    }
    
    //获得总数的方法
    protected  function getcount(){
        return ceil($this->total/$this->num);
    }
    
    //获得开始记录数
    protected function getstart(){
        return ($this->page-1)*$this->num+1;
    }
    
    //获得结束记录数
    protected function getend(){
        return min($this->page*$this->num,$this->total);
    }
    
    //获得上一页的方法
    protected function getprevnum(){
        if($this->page<=1){
            return false;
        }else{
            return $this->page-1;
        }
    }
    
    //获得下一页的方法
    protected function getnextnum(){
        if($this->page>=$this->count){
            return false;
        }else{
            return $this->page+1;
        }
    }
    
    //获得分页的偏移量
    public function offset(){
        return ($this->page-1)*$this->num;
    }
    
    //公共方法
    public function showpage(){
        //显示效果为:这是第n页 共n页 从n到x记录 首页 上一页 下一页 尾页  
        $string='这是第'.$this->page.'页 &nbsp;共'.$this->count.'页&nbsp;';
        $string.='从第'.$this->start.'条到第'.$this->end.'条记录';
        $string.='<a href="'.$this->url.'page=1">首页</a> &nbsp;&nbsp;&nbsp;&nbsp;';
        if($this->prevnum){
            $string.='<a href="'.$this->url.'page='.$this->prevnum.'">上一页</a>&nbsp&nbsp&nbsp';
        }
        if($this->nextnum){
            $string.='<a href="'.$this->url.'page='.$this->nextnum.'">下一页</a>&nbsp&nbsp&nbsp';
        }
        $string.='<a href="'.$this->url.'page='.$this->count.'">尾页</a>';
        return $string;
    }
}
?>

云南然成科技有限公司是一家云南本土的获得省科技厅、省财政厅、省国税局、地税局等机构认定的高新技术企业。公司定位于高端网站设计、系统开发、APP开发、微信公众号、微信小程序开发。拥有多个软著权,公司先后为多家事业单位提供服务,比如会泽文化馆、宣威文化馆、中科院昆明植物研究所等。其中中国科学院昆明植物研究所已经进行了长达4年的合作,并且还持续合作中!

  • 滇公网安备 53010202001388号