<?php
/*
* * File:class.pagenumber.php
* * Class:pagenumber
* * Version:none
* * created:5/12/2004
* * Author:morgan Woo
* * email:morgan.woo@163.com
* * update:huabing LV
* * email:hb_lv@hotmail.com
**
* * Copyright (c) mr.woo. All rights reserved.
*/
Class pager{
Generated page numbers (in fact, no need to do)
var $pageNumber = ';
Total number of entries that need to be sorted
var $totalItems = 0;
Data connection Related
var $conn;
var $sql;
Show several entries per page
var $itemsPerPage = 3;
Total pages
var $totalPageNumber = 0;
The current page number.
var $currentPageNumber = 1;
A page displays several page numbers
var $length = 10;
URLs that require pagination
var $url = ';
function Pager ($conn, $sql, $currentPageNumber, $itemsPerPage, $length, $url) {
$this->currentpagenumber= $currentPageNumber;
$this->conn= $conn;
$this->sql= $sql;
$this->itemsperpage= $itemsPerPage;
$this->length= $length;
$this->url= $url;
$this->url.= ($this->url, ' stristr ')! =false)? ' & ': '? '; There's a "?" in the URL. Add "&" without adding "?"
$this->gettotalpagenumber ();
}
function Gettotalitems () {
For ADODB
$rs = $this->conn->execute ($this->sql);
$this->totalitems= $rs->recordcount ();
return $this->totalitems;
}
function Gettotalpagenumber () {
$this->totalpagenumber=ceil ($this->gettotalitems ()/$this->itemsperpage);
return $this->totalpagenumber;
}
The starting value in LIMIT start,length in SQL
function Getlimitstart () {
$start = ($this->currentpagenumber-1) * $this->itemsperpage;
return $start;
}
Length in LIMIT start,length in SQL
function Getlimititems () {
return $this->itemsperpage;
}
function Getrsperpage () {
$modiSQL = $this->sql. "Limit". $this->getlimitstart (). ",". $this->getlimititems ();
I'm using ADODB's words.
$modiRS = $this->conn->execute ($modiSQL);
$arr = $modiRS->getarray ();
return $arr;
}
The main function. Chinese page pagination
function Getpagenumber () {
if ($this->gettotalpagenumber () >1) {
$pageNumber = ' current '. $this->currentpagenumber. ' Page/Total '. $this->totalpagenumber. ' Page ';
Show first page and previous page
if ($this->currentpagenumber>1) {
First page
The Page
$pageNumber. = "<b><a href=". $this->url. " Page=1> first page </A> </B> ";
Previous page
Previous Page
$pageNumber. = "<b><a href=". $this->url. " Page= ". ($this->currentpagenumber-1). " > front page </A> </B> ";
}
The ' start ' is the ' the ' the ' the ' the ' the ' the ' all pages which ' on the ' current page.
$startNumber =intval ($this->currentpagenumber/$this->length) * $this->length;
Prev N Page
Junction
if ($this->currentpagenumber>= $this->length) {
$pageNumber. = "[<b><a href=". $this->url. " Page= ". ($startNumber-1). " > ". ($startNumber-1). " </a></b>];
}
$leftPageNumber = 0;
for ($i = $startNumber; $i <= $this->totalpagenumber; $i + +) {
if ($i ==0) continue;
if ($i-$startNumber < $this->length) {
if ($i = = $this->currentpagenumber) {
$pageNumber. = "[<b> $i </b>]";
}else{
$pageNumber. = "[<a href=". $this->url. " Page= ". $i." > ". $i." </a>] ";
}
}else{
$leftPageNumber = $this->totalpagenumber-$i +1;
Break
}
}
Display the next page of paging list
if ($leftPageNumber >=1) {
$pageNumber. = "... [<b><a href= ". $this->url." Page= ". ($startNumber + $this->length). " > ". ($startNumber + $this->length). " </a></b>] ";
}
if ($this->currentpagenumber!= $this->totalpagenumber) {
Next page
$pageNumber. = "<b><a href=". $this->url. " Page= ". ($this->currentpagenumber+1). " > next page </A> </B> ";
Last page
$pageNumber. = "<b><a href=". $this->url. " Page= ". $this->totalpagenumber." > last page </A> </B> ";
}
$this->pagenumber= $pageNumber;
return $this->pagenumber;
}
}
English page pagination
function GetPageNumber2 () {
if ($this->gettotalpagenumber () >1) {
$pageNumber = ' P '. $this->currentpagenumber. ' /'. $this->totalpagenumber. ';
Show first page and previous page
if ($this->currentpagenumber>1) {
First page
The Page
$pageNumber. = "<b><a href=". $this->url. " Page=1>first</a> </B> ";
Previous page
Previous Page
$pageNumber. = "<b><a href=". $this->url. " Page= ". ($this->currentpagenumber-1). " >PREV</A> </B> ";
}
The ' start ' is the ' the ' the ' the ' the ' the ' the ' all pages which ' on the ' current page.
$startNumber =intval ($this->currentpagenumber/$this->length) * $this->length;
Prev N Page
Junction
if ($this->currentpagenumber>= $this->length) {
$pageNumber. = "[<b><a href=". $this->url. " Page= ". ($startNumber-1). " > ". ($startNumber-1). " </a></b>];
}
$leftPageNumber = 0;
for ($i = $startNumber; $i <= $this->totalpagenumber; $i + +) {
if ($i ==0) continue;
if ($i-$startNumber < $this->length) {
if ($i = = $this->currentpagenumber) {
$pageNumber. = "[<b> $i </b>]";
}else{
$pageNumber. = "[<a href=". $this->url. " Page= ". $i." > ". $i." </a>] ";
}
}else{
$leftPageNumber = $this->totalpagenumber-$i +1;
Break
}
}
Display the next page of paging list
if ($leftPageNumber >=1) {
$pageNumber. = "... [<b><a href= ". $this->url." Page= ". ($startNumber + $this->length). " > ". ($startNumber + $this->length). " </a></b>] ";
}
if ($this->currentpagenumber!= $this->totalpagenumber) {
Next page
$pageNumber. = "<b><a href=". $this->url. " Page= ". ($this->currentpagenumber+1). " >NEXT</A> </B> ";
Last page
$pageNumber. = "<b><a href=". $this->url. " Page= ". $this->totalpagenumber." >LAST</A> </B> ";
}
$this->pagenumber= $pageNumber;
return $this->pagenumber;
}
}
}
$currentPageNumber = (isset ($_get[' page '))? Intval ($_get[' page '): 1;
Include ("pagenumber/class.pagenumber.php");
$pageNumber = new PageNumber ($adodbConn, $sql, $currentPageNumber, 10,3,3, "test.php");
echo $pageNumber->getpagenumber2 ();
echo "<br>";
echo $pageNumber->getpagenumber ();
?>