PHP+mysql分页的类
一个简单的PHP+MYSQL分页的类,是经过将面向对象进行整合后形成的类,相比较复杂的分页类,这个类更容易理解,没有太多繁琐的代码,可以定义的功能属性有,1,查询所有的数据总记录数,2,当前第几页,3,每页显示记录的条数,4,一共多少页,5,从数据库中取记录的开始偏移数。
每个功能属性都有一个方法函数,在前台实例化后可以直接使用,非常方便,对于想要重新添加或删除的功能也很容易实现,懂一点PHP的基本上都可以拿来修改使用,这里就不多讲解了,直接看代码:
<?php
适用环境: PHP5.2.x / mysql 5.0.x
代码作者: 小虎博客
联系方式: xiaohuboke.com
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;
}
}
?>