龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 分页类系列之三

时间:2014-09-08 02:20来源:网络整理 作者:网络 点击:
分享到:
分页类系列之三 [代码片段(66行)]
<?php 
class Page { 
    private $total; //查询所有的数据总记录数 
    private $page; //当前第几页 
    private $num; //每页显示记录的条数 
    private $pageNum; //一共多少页 
    private $offset; //从数据库中取记录的开始偏移数 

    function __construct($total, $page=1, $num=5) { 
        $this->total=$total; 
        $this->page=$page; 
        $this->num=$num; 
        $this->pageNum=$this->getPageNum(); 
        $this->offset=$this->getOffset(); 
    } 

    private function getPageNum(){ 
        return ceil($this->total/$this->num); 
    } 

    private function getNextPage() { 
        if($this->page==$this->pageNum) 
        return false; 
        else
        return $this->page+1; 
    } 

    private function getPrevPage() { 
        if($this->page==1) 
        return false; 
        else
        return $this->page-1; 
    } 
    //数据库查询的偏移量 
    private function getOffset() { 
        return ($this->page-1)*$this->num; 
    } 
    //当前页开始的记录数 
    private function getStartNum() { 
        if($this->total==0) 
        return 0; 
        else
        return $this->offset+1; 
    } 
    //当前页结束的记录数 
    private function getEndNum() { 
        return min($this->offset+$this->num,$this->total); 
    } 

    public function getPageInfo(){ 
        $pageInfo=array( 
        "row_total" => $this->total, 
        "row_num" => $this->num, 
        "page_num" => $this->getPageNum(), 
        "current_page" => $this->page, 
        "row_offset" => $this->getOffset(), 
        "next_page" => $this->getNextPage(), 
        "prev_page" => $this->getPrevPage(), 
        "page_start" => $this->getStartNum(), 
        "page_end" => $this->getEndNum() 
        ); 
        return $pageInfo; 
    } 
} 
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接