php分页函数分页数据,PHP分页函数案例

/**

* @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;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值