免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1258 | 回复: 0
打印 上一主题 下一主题

类:分页 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-18 20:47 |只看该作者 |倒序浏览
2: #===============================================
  3: # 名    称: Page v1.1 分页
  4: # 文    件: Page.class.php
  5: # 作    者: liu21st, liu21st@126.com
  6: # 说    明: 实现分页功能
  7: # 修    改: 2003-12-23 加firstRow的溢出判断,溢出时显示最后一页
  8: #------------------------------------------------------------------------------------
9:
[color="#ff9900"] 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 页  >>
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 = "totalRows&$this->parameter'>";
45: $theFirst = "totalRows&$this->parameter'>";
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 = "totalRows&$this->parameter'>>";
54: $theEnd = "totalRows&$this->parameter'>>>";
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 .= " totalRows&$this->parameter'>".$page."";
64: }else{
65: break;
66: }
67: }else{
68: if($this->totalPages != 1){
69: $linkPage .= " [".$page."]";
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 "
";
98:    }
99:   $pager=$page->prompt();
100:   -------------------------------------------------------------------------------*/
101: }
102: ?>
下载地址


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2633/showart_22025.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP