一个简单的分页类

发表于:2007-07-04来源:作者:点击数: 标签:
很简单,只有一种风格,而且对输入的page变量没有判断. pager. php //简单的分页类 class pager var pagesize = 20 ; //页面记录条数 var num; //这个是查询的总记录条数,一定要传递进来. var page=1 ;//当前页 var pagelink; //页面链接跳转 var url; //当前

很简单,只有一种风格,而且对输入的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 = '

url_with_page."">";
    if ($this->page==1) {
      $this->pagelink .= "首页 上页 ";
      }else {
      $this->pagelink .= "url_with_page"."1".">首页 url_with_page".($this->page-1).">上页 ";
      }
    if ($this->page==$totalpage)
      {
       $this->pagelink .= "下页 尾页 ";
      }
    else
      {
      $this->pagelink .= "url_with_page".($this->page+1).">下页 url_with_page".$totalpage.">尾页 ";
      }
     $this->pagelink .= "页次:".$this->page."/".$totalpage."页 共".$this->num."条记录 转到";
     $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;
?>


原文转自:http://www.ltesting.net