首先建立NewsModle類用於操作數據庫
在該類中有兩個操作第一個獲取 總記錄數
//返回所有記錄數目
public function getCount($tableName)
{
$sql = "select count(*) from {$tableName}";
$result=$this->mysqli->query($sql);
$row = $result->fetch_assoc();
return $row["count(*)"];
}
另外一個是得到分頁數據
//得到分頁
public function selectLimitPage($pager)
{
$tableName = $pager->tablename;
$offset = (($pager->CurrentPageID)-1)*($pager->PageSize);
$pageSize = $pager->PageSize;
$sql = "SELECT * FROM {$tableName} LIMIT {$offset},{$pageSize}";
if($result=$this->mysqli->query($sql))
{
if($result->num_rows)
{
while($row=$result->fetch_assoc())
$allNews[] = new NewsToUser($row["title"],$row["decription"],$row["pic_url"],$row["artcile_url"]);
$result->close();
return $allNews;
}
else{
$result->close();
$this->printError("沒有獲取到任何記錄");
return FALSE;
}
}
else{
$this->printError("數據查詢失敗:".$this->mysqli->error);
return FALSE;
}
}
然後建立一個用於操作分頁數據的page類
<?php
require_once 'NewsModle_class.php';
class Pager
{
var $tablename; //數據來源
var $PageSize; //每頁的數量
var $CurrentPageID = 1; //當前的頁數
var $db;
var $NextPageID; //下一頁
var $PreviousPageID; //上一頁
var $numPages; //總頁數
var $numItems; //總記錄數
var $isFirstPage; //是否第一頁
var $isLastPage; //是否最後一頁
var $pageName;
public function __construct($tablename,$PageSize)
{
$this->tablename = $tablename;
//每個頁面的
$this->PageSize = $PageSize;
$this->db = new NewsModle();
//得到條目數目
$this->numItems = $this->db->getCount($tablename);
$this->numPages = ceil($this->numItems/$PageSize);
echo $this->numPages;
}
public function showInfo()
{
if(isset($_GET["CurrentPageID"]))
{
$this->CurrentPageID = $_GET["CurrentPageID"];
}
if($this->CurrentPageID<=1)
{
echo "第{$this->CurrentPageID}頁 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一頁</a>";
}
else if($this->CurrentPageID>=$this->numPages)
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一頁</a> 第{$this->CurrentPageID}頁";
}
else
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一頁</a> 第{$this->CurrentPageID}頁 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一頁</a>";
}
}
public function pre()
{
if($this->CurrentPageID <= 1)
{
return 1;
}
else
{
return $this->CurrentPageID-1;
}
}
public function nex()
{
if($this->CurrentPageID >= $this->numPages )
{
return $this->CurrentPageID;
}
else
{
return $this->CurrentPageID +1;
}
}
public function showData()
{
//得到數據
print_r($this->db->selectLimitPage($this) );
}
/**
* @return the $CurrentPageID
*/
public function getCurrentPageID()
{
return $this->CurrentPageID;
}
}
?>
運行結果如下: