天天看點

php +mysql 分頁,php+mysql分頁類

class PageSupport{

//屬性

var $sql; //所要顯示資料的SQL查詢語句

var $page_size; //每頁顯示最多行數

var $start_index; //所要顯示記錄的首行序号

var $total_records; //記錄總數

var $current_records; //本頁讀取的記錄數

var $result; //讀出的結果

var $total_pages; //總頁數

var $current_page; //目前頁數

var $display_count = 30; //顯示的前幾頁和後幾頁數

var $arr_page_query; //數組,包含分頁顯示需要傳遞的參數

var $first;

var $prev;

var $next;

var $last;

//方法

function PageSupport($ppage_size)

{

$this->page_size=$ppage_size;

$this->start_index=0;

}

function __destruct()

{

}

function __get($property_name)

{

if(isset($this->$property_name))

{

return($this->$property_name);

}

else

{

return(NULL);

}

}

function __set($property_name, $value)

{

$this->$property_name = $value;

}

function read_data()

{

$psql=$this->sql;

//查詢資料,資料庫連結等資訊應在類調用的外部實作

$result=mysql_query($psql) or die(mysql_error());

$this->total_records=mysql_num_rows($result);

//利用LIMIT關鍵字擷取本頁所要顯示的記錄

if($this->total_records>0)

{

$this->start_index = ($this->current_page-1)*$this->page_size;

$psql=$psql. " LIMIT ".$this->start_index." , ".$this->page_size;

$result=mysql_query($psql) or die(mysql_error());

$this->current_records=mysql_num_rows($result);

//将查詢結果放在result數組中

$i=0;

while($row=mysql_fetch_Array($result))

{

$this->result[$i]=$row;

$i++;

}

}

//擷取總頁數、目前頁資訊

$this->total_pages=ceil($this->total_records/$this->page_size);

$this->first=1;

$this->prev=$this->current_page-1;

$this->next=$this->current_page+1;

$this->last=$this->total_pages;

}

function standard_navigate()

{

echo "";

echo "";

echo "";

}

function full_navigate()

{

echo "";

echo "";

echo "";

}

}

?>