类:分页
时间:2005-04-18 来源:夏羽
2: #===============================================
3: # 名 称: Page v1.1 分页
4: # 文 件: Page.class.php
5: # 作 者: liu21st, [email protected]
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: ?>
下载地址
3: # 名 称: Page v1.1 分页
4: # 文 件: Page.class.php
5: # 作 者: liu21st, [email protected]
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: ?>
下载地址
相关阅读 更多 +