//-------------------------具体演示举例-------------------------------
/*
//(前面程序略)
include("pageft.php"); //包含“pageft.php”文件
//取得总信息数
$result=mysql_query("select * from mytable");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
pageft($total,10);
//现在产生的全局变量就派上用场了:
$result=mysql_query("select * from mytable limit $firstcount,$displaypg ");
while($row=mysql_fetch_array($result)){
//(列表内容略)
}
//输出分页导航条代码:
echo $pagenav;
//(后面程序略)
*/
?>
分页类系列之三
复制代码 代码如下:
<?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;
}
}
?>
3种分页类使用起来效率都不错,也都很简单,这里推荐给大家。
您可能感兴趣的文章: