/**
* @PHP分页类
*/
class page{
var $page_name=¹page¹; //数据名称
var $page_size; //每页显示条数
var $db;//数据库
var $page_num;//总页数
var $page=0; //当前页码
var $num; //数据总条数
/**
* 返回去除$page_name之后的查询字串
* @return unknown
*/
function getquery(){
$query=$_SERVER[¹QUERY_STRING¹];
//echo $query;
//echo $this->page_name;
//echo strripos($query,$this->page_name);
//echo strpos($query,$this->page_name);
if(empty($query)) return false;
if(($end=strpos($query,$this->page_name)) !== false){
if($end==0) $end=1;
$query=substr($query,0,$end-1);
}
//echo $query;
return $query;
}
/**
* Enter 取得分页数据
* @param unknown_type $sql
* @param unknown_type $db
* @param unknown_type $page_size
* @return array;
*/
function getData($sql,$db,$page_size=20){
$this->page_size=$page_size;
if(strripos($sql,¹limit¹) != false)die(¹SQL中不可出现limit¹);
if($page_size<=0)die(¹$page_size设置错误¹);
$sql=trim($sql);
$this->num=$db->getnum($sql);
if($this->num<=$page_size){
$this->page_num=0;
}else{
$this->page_num=ceil($this->num/$page_size)-1;
}
if(empty($_GET[$this->page_name]) || $_GET[$this->page_name] <0 ){
$this->page=0;
}elseif($_GET[$this->page_name] > $this->page_num){
$this->page=$this->page_num;
}else{
$this->page=$_GET[$this->page_name];
}
$sql.=¹ limit ¹.($this->page*$page_size).¹,¹.$page_size;
$row=$db->getall($sql);
//echo $sql;
return $row;
}
/**
* 输出分页链接
* @return unknown
*/
function pagelist(){
$query=$this->getquery();
if(empty($query)){
$query=¹¹;
}else{
$query=$query.¹&¹;
}
$total=¹总共¹.$this->num.¹条 每页¹.$this->page_size.¹条¹;
$startpage=¹page_name.¹=0">首页¹;
$endpage=¹page_name.¹=¹.$this->page_num.¹">尾页¹;
if($this->page==0){
$prepage=¹上一页¹;
}else{
$prepage=¹page_name.¹=¹.($this->page-1).¹">上一页¹;
}
if($this->page==$this->page_num){
$nextpage=¹下一页¹;
}else{
$nextpage=¹page_name.¹=¹.($this->page+1).¹">下一页¹;
}
return $total.¹ ¹.$startpage.¹ ¹.$prepage.¹ ¹.$nextpage.¹ ¹.$endpage;
}
}
?>