很簡單,只有一種風格,而且對輸入的page變量沒有判斷.
pager.php
//簡單的分頁類
class pager{
var $pagesize = 20 ; //頁面記錄條數
var $num; //這個是查詢的總記錄條數,一定要傳遞進來.
var $page=1 ;//當前頁
var $pagelink; //頁面鏈接跳轉
var $url; //當前頁面地址
var $url_with_page; //這個是為首頁等頁面鏈接用的,加上了&page=或?page=
var $offset; //查詢的limit開始
function makepage() {
if ($this->num==0){
$this->pagelink="沒有找到任何記錄";
$this->offset=0;
}else{
//首先確定鏈接頁地址
$this->url=ereg_replace("(\?|&)+(page=)+([0-9])","",$_SERVER['REQUEST_URI']);
if ($this->url==$_SERVER['PHP_SELF']) {
$this->url_with_page=$this->url."?page=";
}else{
$this->url_with_page=$this->url."&page=";
}
$mod = $this->num % $this->pagesize; //如果不是全部整版,那最后一頁的記錄數量
$totalpage = (int)($this->num / $this->pagesize); //整版頁的數量
if ($mod) {
++$totalpage ; //如果有余數,總頁數應為整版頁加1
}
//如果是不為整的最后一頁,則該頁記錄數$perpage為余數,否則為10
if ($this->page==$totalpage and $mod<>0)
{
$perpage=$mod;
}
else
{
$perpage=$this->pagesize;
}
$this->offset = ($this->page - 1) * $this->pagesize; //本頁第一條記錄的下標
//生成底面頁面跳轉
$this->pagelink = '
test.phprequire('./pager.php');
if (!isset($_GET['page'])) {
$page=1;
}else{
$page=$_GET['page'];
}
$pager=new pager;
$pager->num= 90;
$pager->page=$page;
$pager->makepage();
print "
";
echo $pager->pagelink;
echo "
offset=";
echo $pager->offset;
?>