PHP MVC 分頁
在一個網站應用程序中,數據展示往往是不可或缺的。當數據量較大的時候,為了減輕頁面的渲染壓力,我們通常會將數據分頁展示。使用 PHP MVC 架構可以讓我們輕松地實現分頁功能。
首先,我們需要在視圖模板中展示可以翻頁的頁碼,并在后臺控制器中獲取當前頁數據并與視圖模板進行整合,以便顯示數據與分頁。以下是一個簡單的 PHP MVC 分頁實例:
以下是視圖模板代碼:
<div class="pagination"> <?php for($i=1; $i<=$totalPage; $i++){ if($currentPage==$i){ echo "<a class='active' href='#'>".$i."</a>"; }elseif($i==1){ echo "<a href='./'>First</a>"; }elseif($i==$totalPage){ echo "<a href='?page=$totalPage'>Last</a>"; }else{ echo "<a href='?page=$i'>".$i."</a>"; } } ?> </div>
以上代碼主要是通過循環遍歷頁碼數等條件,生成符合分頁需求的 HTML 結構。其中,$totalPage
是總頁數,$currentPage
是當前頁數。
接下來,我們要在后臺控制器中獲取數據并根據當前頁數展示相應的數據。
class Index_Controller extends Controller { public function index() { $model = new Index_Model(); $data = $model->get_list_data(); $currentPage = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = 10; $offset = ($currentPage - 1) * $pageSize; $totalPage = intval(ceil(count($data) / $pageSize)); $list = array_slice($data, $offset, $pageSize); $view = new View('index'); $view->assign(array( 'list' =>$list, 'totalPage' =>$totalPage, 'currentPage' =>$currentPage, ))->display(); } }
以上代碼在控制器中獲取了一頁大小為$pageSize
的數據列表,并利用向上取整的方式計算出了數據總頁數$totalPage
,接著將當前頁碼數$currentPage
與數據列表一同傳遞給展示數據的視圖模板。
最后,我們需要對模型層進行適當的改造以實現獲取指定范圍的數據。
class Index_Model extends Model { public function get_list_data() { $sql = "select * from `table` order by id desc"; $data = $this->db->query($sql); return $data; } }
我們需要在模型中實現一個分頁查詢方法,該方法可以接受兩個參數,即當前頁數和每頁大小,并返回指定范圍內的數據列表。以下是修改后的模型代碼:
class Index_Model extends Model { public function get_list_data($page, $pageSize) { $sql = "select * from `table` order by id desc limit ".($page - 1) * $pageSize. "," . $pageSize; $data = $this->db->query($sql); return $data; } }
以上代碼在 SQL 語句中使用了limit
關鍵詞來控制每次查詢的數據范圍,并結合了傳入的頁碼參數與每頁大小參數來計算數據查詢的偏移量。
經過以上三步,我們已經完成了 PHP MVC 分頁的實現。當用戶訪問首頁時,網站會自動加載一頁數據,可通過翻頁鏈接訪問其他頁的數據。通過這種方式我們可以更好的控制數據的渲染效率,提升網站性能。
上一篇oracle 連接實例
下一篇python的賦值語