RSS
热门关键字:  下载  cms  模版  开源  dedecms
当前位置 :| 主页 > 站长学院 > PHP教程 >

类:分页

来源:Blog.ChinaUnix.net 作者:未知 时间:2006-09-14 Tag: 点击:
<?php
  2:
#===============================================
  3: # 名    称: Page v1.1 分页
  4: # 文    件: Page.class.php
  5: # 作    者: liu21st, liu21st@126.com
  6: # 说    明: 实现分页功能
  7: # 修    改: 2003-12-23 加firstRow的溢出判断,溢出时显示最后一页
  8: #------------------------------------------------------------------------------------

9:
 10: class Page
{
 11:   var
$firstRow   = 0 ;  
// 起始行
 12:   
var $listRows   = 0 ;  
// 每页显示列表行数
 13:   
var $parameter  = "";  
// 页数跳转时要带的参数
 14:   
var $totalPages = 0 ;  
// 总页数
 15:   
var $totalRows  = 0 ;  
// 总行数
 16:   
var $nowPage    = 0 ;  
// 当前页数
 17:   
var $showPageJump = True;
// 是否显示跳到第几页
 18:   
var $coolPages  = 0 ;  
// 分页的栏的总页数
 19:   
var $rollPage   = 5;   
// 分页栏每页显示的页数
 20:
 21:   /*--------------------------------------------------------------------------
 22:    功能:显示分页信息第 x 页 共 x 页 << < 6 7 8 9 10 > >>
 23:   -----------------------------------------------------------------------------*/
 24:    
function prompt
() {
 25: if(
0 == $this->totalRows
) {
 26: return;
 27: }
 28:      
$this->totalPages=ceil($this->totalRows/$this->listRows);
//总页数
 29:
$this->coolPages = ceil($this->totalPages/$this->rollPage
);
 30: if (
$this->firstRow >= $this->totalRows ) {  
// 2003-12-30 17:18:29 kinger modified
 31:
$this->nowPage = $this->totalPages
;
 32:
$this->firstRow = ($this->totalPages-1)*$this->listRows
;
 33: } else {
 34:
$this->nowPage=floor($this->firstRow/$this->listRows+1);    
//当前页号
 35:
}
 36:
$nowCoolPage = ceil($this->nowPage/$this->rollPage
);
 37:
 38:
// << < > >>
 39:
if($nowCoolPage == 1
){
 40:
$theFirst = ""
;
 41:
$prePage = ""
;
 42: }else{
 43:
$preRow =  ($this->rollPage*($nowCoolPage-1)-1)*$this->listRows
;
 44:
$prePage = "<a href='?firstRow=$preRow&totalRows=$this->totalRows&$this->parameter'><</a>"
;
 45:
$theFirst = "<a href='?firstRow=0&totalRows=$this->totalRows&$this->parameter'><<</a>"
;
 46: }
 47: if(
$nowCoolPage == $this->coolPages
){
 48:
$nextPage = ""
;
 49:
$theEnd=""
;
 50: }else{
 51:
$nextRow = ($nowCoolPage*$this->rollPage)*$this->listRows
;
 52:
$theEndRow = ($this->totalPages-1)*$this->listRows
;
 53:
$nextPage = "<a href='?firstRow=$nextRow&totalRows=$this->totalRows&$this->parameter'>></a>"
;
 54:
$theEnd = "<a href='?firstRow=$theEndRow&totalRows=$this->totalRows&$this->parameter'>>></a>"
;
 55: }
 56:
// 1 2 3 4 5
 57:
$linkPage = ""
;
 58: for(
$i=1;$i<=$this->rollPage;$i
++){
 59:
$page=($nowCoolPage-1)*$this->rollPage+$i
;
 60:
$rows=($page-1)*$this->listRows
;
 61: if(
$page!=$this->nowPage
){
 62: if(
$page<=$this->totalPages
){
 63:
$linkPage .= " <a href='?firstRow=$rows&totalRows=$this->totalRows&$this->parameter'>".$page."</a>"
;
 64: }else{
 65: break;
 66: }
 67: }else{
 68: if(
$this->totalPages != 1
){
 69:
$linkPage .= " [<b>".$page."</b>]"
;
 70: }
 71: }
 72: }
 73:
$pageStr = "共 $this->totalPages 页  ".$theFirst." ".$prePage." ".$linkPage." ".$nextPage." ".$theEnd
;
 74: return
$pageStr
;
 75:    }
 76:   
/*-----------------------------------------------------------------------
 77:    使用举例。
 78:       --------------------------------------------------------------------
 79:   $page = new Page();
 80:   if ($totalRows){
 81:      $page->totalRows=$totalRows;
 82:    }else{
 83:                      //此处为计算查询个数,视不同的数据库方式有所不同
 84:      $page->totalRows=$db->count($db->select("user","*"););
 85:    }
 86:   $page->listRows="2";
 87:   if ($firstRow){
 88:      $page->firstRow=$firstRow;
 89:    }else{
 90:      $page->firstRow=0;   
 91:    }
 92:   $db->select("user","*","","","$page->firstRow,$page->listRows");
 93:   while($db->nextRecord()) {
 94: echo $db->record[id]." ";
 95: echo $db->record[name]." ";
 96:     echo $db->record[age]." ";
 97: echo "<br>";
 98:    }
 99:   $pager=$page->prompt();
100:   -------------------------------------------------------------------------------*/
101:
}
102:
?>

下载地址


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册