分享一下自己的分页类
时间:2007-07-03
来源:互联网
PHP代码:
<?php
/**
* 文件名: page.class.php
* 说明: 分页类
* 作者: 吕耀祖
* 联系方式:email:[email protected]
* msn:[email protected]
* 创建日期:2007-06-25
*/
class page {
var $perpage= 10; //每页显示多少条记录数
var $total; //总记录数
var $curpage = 1; //当前页码
var $pages; //总页数
var $offset; //记录偏移量
var $filename; //分页文件名称
var $pagename = 'page'; //分页时用来传递参数的变量 如:"$filename?page=$curpage"
function page($total,$perpage,$filename,$pagename) {
$this->total = intval($total);
if(isset($perpage)) $this->perpage = $perpage;
$this->pages = ceil($this->total / $this->perpage);
$this->getcurpage();
$this->offset = ($this->curpage-1)*$this->perpage;
if(isset($pagename)) $this->pagename = $pagename;
if(isset($filename)) {
$this->filename = $filename;
} else {
$this->filename = $_SERVER['PHP_SELF'];
}
}
function getcurpage() {
if(isset($_GET[$this->pagename])) $this->curpage = intval($_GET[$this->pagename]);
if($this->curpage < 1) $this->curpage = 1;
if($this->curpage > $this->pages) $this->curpage = $this->pages;
}
function getfirstpage() {
if($this->curpage == 1) {
return "首页";
} else {
return "<a href=\"{$this->getlink(1)}\">首页</a>";
}
}
function getnextpage() {
$nextpage = $this->curpage + 1;
return "<a href=\"{$this->getlink($nextpage)}\">下一页</a>";
}
function getprepage() {
$prepage = $this->curpage - 1;
return "<a href=\"{$this->getlink($prepage)}\">上一页</a>";
}
function getlastpage() {
if($this->curpage == $this->pages) {
return "尾页";
} else {
return "<a href=\"{$this->getlink($this->pages)}\">尾页</a>";
}
}
function getlink($param) {
if(strpos($this->filename,'?')) {
return $this->filename."&".$this->pagename."=".$param;
} else {
return $this->filename."?".$this->pagename."=".$param;
}
}
function showpage() {
$begin = $this->curpage - 4;
$end = $this->curpage + 5;
if($this->curpage<=4){
$begin = 1;
$end = 10;
}
if($this->curpage > $this->pages-10){
$begin = $this->pages - 10;
$end = $this->pages;
}
if($begin<1){
$begin = 1;
}
if($end>$this->pages){
$end = $this->pages;
}
if($this->total>$this->perpage) {
$pagenav = $this->getfirstpage();
if($this->curpage > 1) {
$pagenav .= $this->getprepage();
}
for($i = $begin; $i <= $end; $i++) {
if($i == $this->curpage) {
$pagenav .= "$i"." ";
} else {
$pagenav .= "<a href=\"{$this->getlink($i)}\">[$i]</a>"." ";
}
}
if($this->curpage < $this->pages) {
$pagenav .= $this->getnextpage();
$pagenav .= $this->getlastpage();
}
}
return $pagenav;
}
}
?>
PHP代码:
$total = 1000;$perpage = 10;
$page = new page($total,$perpage);
$sql = "select * from xxx limit $page->offset,$perpage";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo $row['xxx']."<br/>";
}
echo $page->showpage();
作者: 网鬼 发布时间: 2007-07-03
作者: yanglish 发布时间: 2007-07-03
多谢支持啊!
作者: 网鬼 发布时间: 2007-07-03
作者: wukeyuan 发布时间: 2007-07-03
给你提两个意见
第一个
你的参数不全会报错
第二
如果你的地址上有其他参数会出问题
请修改
作者: feelone 发布时间: 2007-07-13
作者: 网鬼 发布时间: 2007-07-14
作者: fnet 发布时间: 2007-08-14
作者: caiyuerui 发布时间: 2007-08-15
作者: sulwan 发布时间: 2008-07-06
作者: forweike 发布时间: 2008-07-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28