<?php
class page{
private $dbadd; //數據庫地址
private $dbuser; //數據庫用戶名
private $dbpwd; //數據庫密碼
private $dbname; //數據庫名
private $tablename; //數據表名
private $num; //每頁顯示的行數
private $total; //表中數據總數
private $totalpage; //總頁數
private $page; //當前頁數
private $limit; //查詢數
private $arrs; //查詢后返回的數據
private $col; //總列數
private $nostart; //當前頁開始的記錄數
private $noend; //當前頁結束的記錄數
private $head; //首頁
private $end; //尾頁
private $last; //上一頁
private $nexts; //下一頁
function __construct($dbadd, $dbuser, $dbpwd, $dbname, $tablename, $num){
$this->dbadd=$dbadd;
$this->dbuser=$dbuser;
$this->dbpwd=$dbpwd;
$this->dbname=$dbname;
$this->tablename=$tablename;
$this->num=$num;
$this->total=$this->gettotal(); //得到總條數
$this->totalpage=ceil($this->total/$this->num); //獲取總頁數
$this->page=$this->getpage(); //得到當前頁數
$this->limit=$this->setlimit(); //得到查詢的數據
$this->arrs=$this->getarrs(); //得到查詢的結果
$this->col=$this->getcol(); //獲取總列數
$this->nostart=($this->page-1)*$num+1;
$this->noend=$this->page==$this->totalpage ? $this->total : $this->page*$num;
$this->head=$this->page==1 ? "首頁" : "<a href='?page=1'>首頁</a>";
$this->end=$this->page==$this->totalpage ? "尾頁" : "<a href='?page={$this->totalpage}'>尾頁</a>";
$this->last=$this->page==1 ? "上一頁" : "<a href='?page=".($this->page-1)."'>上一頁</a>";
$this->nexts=$this->page==$this->totalpage ? "下一頁" : "<a href='?page=".($this->page+1)."'>下一頁</a>";
}
private function getcol(){
$linkss=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd);
mysql_select_db($this->dbname, $linkss);
$result=mysql_query("select * from {$this->tablename}", $linkss);
$col=mysql_num_fields($result);
mysql_close($linkss);
return $col;
}
private function getarrs(){ //根據條件再次查詢并返回結果
$sql="select * from {$this->tablename} limit {$this->limit}, {$this->num}";
$links=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd);
mysql_select_db($this->dbname, $links);
$result=mysql_query($sql, $links);
while($arr=mysql_fetch_assoc($result)){
$arrs[]=$arr;
}
return $arrs;
mysql_close($links);
}
private function setlimit(){
return ($this->page-1)*$this->num;
}
private function getpage(){
$page=isset($_GET["page"]) ? $_GET["page"] : 1;
$page=$page>$this->totalpage ? $this->totalpage : $page;
$page=$page<1 ? 1 : $page;
return $page;
}
private function gettotal(){ //得到表中所有記錄的總數
$link=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd);
mysql_select_db($this->dbname, $link);
$result=mysql_query("select * from {$this->tablename}", $link);
$total=mysql_num_rows($result);
mysql_close($link);
return $total;
}
function __get($args){
switch($args){
case "arrs": //根據條件查詢出的結果,是二維數組
return $this->arrs;
break;
case "totalpage": //總頁數
return $this->totalpage;
break;
case "col": //總列數
return $this->col;
break;
case "page": //當前頁
return $this->page;
break;
case "nostart": //當前頁顯示的記錄的起始條數
return $this->nostart;
break;
case "noend": //當前頁顯示的記錄的結束條數
return $this->noend;
break;
case "head": //首頁按鈕
return $this->head;
break;
case "end": //尾頁按鈕
return $this->end;
break;
case "last": //上一頁按鈕
return $this->last;
break;
case "nexts": //下一頁按鈕
return $this->nexts;
break;
}
}
}
?>
這個類沒有公有的方法,像上一頁、下一頁、首頁、末頁、當前頁數、總頁數、當前顯示條數、總條數這些值,分別賦給了成員屬性,調用時只需要輸出相應的成員屬性即可,非常方便。
在實例化傳值的時候,只需要傳數據庫地址、帳號、密碼、庫名、表名、每頁顯示的數目即可!
這個類很好用 故在這里唐山長城網絡給大家給大家推薦一下
http://