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

分页类系列之三

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
分页类之三
分页类之三
<?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; 
	} 
} 
?>
精彩图集

赞助商链接