文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>类:分页

类:分页

时间:2007-02-17  来源:PHP爱好者

<?php
2: #===============================================
3: # 名    称: Page v1.1 分页
4: # 文    件: Page.class.php
5: # 作    者: liu21st, [email protected]
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: ?>
下载地址
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.
相关阅读 更多 +
排行榜 更多 +
火柴人大战2023

火柴人大战2023

策略塔防 下载
希望之城僵尸

希望之城僵尸

策略塔防 下载
全面战斗

全面战斗

策略塔防 下载