很简单,只有一种风格,而且对输入的page变量没有判断.
pager.php
//简单的分页类
class pager{
var $pagesize = 20 ; //页面记录条数
var $num; //这个是查询的总记录条数,一定要传递进来.
var $page=1 ;//当前页
var $pagelink; //页面链接跳转
var $url; //当前页面地址
var $url_with_page; //这个是为首页等页面链接用的,加上了&page=或?page=
var $offset; //查询的limit开始
function makepage() {
if ($this->num==0){
$this->pagelink="没有找到任何记录";
$this->offset=0;
}else{
//首先确定链接页地址
$this->url=ereg_replace("(\?|&)+(page=)+([0-9])","",$_SERVER['REQUEST_URI']);
if ($this->url==$_SERVER['PHP_SELF']) {
$this->url_with_page=$this->url."?page=";
}else{
$this->url_with_page=$this->url."&page=";
}
$mod = $this->num % $this->pagesize; //如果不是全部整版,那最后一页的记录数量
$totalpage = (int)($this->num / $this->pagesize); //整版页的数量
if ($mod) {
++$totalpage ; //如果有余数,总页数应为整版页加1
}
//如果是不为整的最后一页,则该页记录数$perpage为余数,否则为10
if ($this->page==$totalpage and $mod<>0)
{
$perpage=$mod;
}
else
{
$perpage=$this->pagesize;
}
$this->offset = ($this->page - 1) * $this->pagesize; //本页第一条记录的下标
//生成底面页面跳转
$this->pagelink = '
test.phprequire('./pager.php');
if (!isset($_GET['page'])) {
$page=1;
}else{
$page=$_GET['page'];
}
$pager=new pager;
$pager->num= 90;
$pager->page=$page;
$pager->makepage();
print "
";
echo $pager->pagelink;
echo "
offset=";
echo $pager->offset;
?>