分頁顯示MySQL數據庫記錄的類
作者:sharetop
E-mail:[email protected]
時間:2000-8-31
本類沒有提供連接數據庫的功能,所以需在外部打開相應的數據庫。
本類也沒有提供顯示記錄的功能,只是分頁讀取記錄至 Result二維數組中。
需在外部自定義數據顯示格式。
***********************************************/
class TVIEwPage {
var $Table; //表名
var $MaxLine; //每頁顯示行數
var $Offset; //記錄偏移量
var $Total; //記錄總數
var $Number; //本頁讀取的記錄數
var $Result; //讀出的結果
var $TPages; //總頁數
var $CPages; //當前頁數
var $Condition; //顯示條件 如:where id='$id' order by id desc
var $PageQuery; //分頁顯示要傳遞的參數
//******構造函數*************
//參數:表名、最大行數、偏移量
function TVIEwPage($TB,$ML,$OF=0){
$this->Table=$TB;
$this->MaxLine=$ML;
$this->Offset=$OF;
$this->Condition="";
}
//********設置顯示條件*********
//如:where id='$id' order by id desc
//要求是字串,符合SQL語法(本字串將加在SQL語句後)
function SetCondition($s){
$this->Condition=$s;
}
//******設置傳遞參數************
// key參數名 value參數值
// 如:setpagequery("id",$id);如有多個參數要傳遞,可多次調用本函數。
function SetPageQuery($key,$value){
$tmp[key]=$key; $tmp[value]=$value;
$this->PageQuery[]=$tmp;
}
//********讀取記錄***************
// 主要工作函數,根據所給的條件從表中讀取相應的記錄
// 返回值是一個二維數組,Result[記錄號][字段名]
function ReadList() {
$SQL="SELECT Count(*) AS total FROM ".$this->Table." ".$this->Condition;
$result=mysql_query($SQL) or dIE(MySQL_error());
$row=MySQL_fetch_Array($result);
$this->Total=$row[total];
if($this->Total>0) { //根據條件 Condition
$SQL="SELECT * FROM ".$this->Table." ".$this->Condition.
" LIMIT ".$this->Offset." , ".$this->MaxLine;
$result=mysql_query($SQL) or dIE(MySQL_error());
$this->Number=MySQL_num_rows($result);