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=¹<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;
}
}
?>
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)