iLeichun

当前位置: 首页 > JQuery

PHP分页函数案例

分类:JQuery   来源:网络   时间:2011-01-19 09:24:09

<?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=¹<a href="?¹.$query.$this->page_name.¹=0">首页</a>¹;

   $endpage=¹<a href="?¹.$query.$this->page_name.¹=¹.$this->page_num.¹">尾页</a>¹;

   if($this->page==0){

    $prepage=¹上一页¹;

   }else{

    $prepage=¹<a href="?¹.$query.$this->page_name.¹=¹.($this->page-1).¹">上一页</a>¹;

   }

   if($this->page==$this->page_num){

    $nextpage=¹下一页¹;

   }else{

    $nextpage=¹<a href="?¹.$query.$this->page_name.¹=¹.($this->page+1).¹">下一页</a>¹;

   }

   return $total.¹ ¹.$startpage.¹ ¹.$prepage.¹ ¹.$nextpage.¹ ¹.$endpage;

}

  

?>

更多