pear的Pager搭配mdb2使用
pear Pager提供的分頁套件,讓使用者能快速的為一資料集合建立換頁功能。雖然官方文件的說明很詳盡,但它僅提供陣列型式的範例,對初學者來說或許不大夠用,以下簡單記錄個人搭配mdb2的標準使用例…
$dbconn、setDBOpen()、setDBClose()是自行建立的資料庫連結的物件及函式,請先瀏覽此文pear mdb2 使用教學 資料庫連結
<?php require_once('MDB2.php'); require_once('Pager/Pager.php'); setDBOpen(); //依傳遞的參數$_GET['online']取得所有member資料 $dbquery = $dbconn->queryAll("select ID,name,birthday from member where online = '".$_GET['online']."'"); //設定分頁參數 $params = array( 'mode' => 'Sliding',//分頁模式 'perPage' => 10,//一頁幾筆 'path' => 'http://localhost/test/member.php',//產生分頁的頁面 'fileName' => '?online='.$_GET['online'].'pageID=%d',//自訂分頁傳遞的參數 'append' => false,//取消參數自動傳遞,這樣才能自訂fileName的參數 'delta' => 5,//幾頁分段 'itemData' => $dbquery//資料來源是上方的資料庫查詢結果 ); $pager_object = Pager::factory($params);//Pager的使用變數 $pager_data = $pager_object->getPageData();//Pager儲存的陣列資料 $pager_link = $pager_object->getLinks();//Pager的分頁變數 $pager_pags = $pager_object->numPages()//Pager的總頁數 $pager_nums = $pager_object->numItems()//資料總數 setDBClose(); ?> <!-- 用table排版內容 --> <table> <!-- 顯示頁數和資料數 --> <tr><td colspan="3"><?=$pager_pags?>頁<?=$pager_nums?>筆</td></tr> <!-- 迴圈跑出查詢資料 --> <?php foreach ($pager_data as $data) { ?> <tr><td><?=$data['ID']?></td><td><?=$data['name']?></td><td><?=$data['birthday']?></td></tr> <?php } ?> <!-- 顯示分頁 --> <tr><td colspan="3"><?=$pager_link['all']?></td></tr> </table>
註1:更多pager函式說明,請參考官方文件
註2:看到這篇文章PEAR::Pager Tutorials – Paginate database results,發現Pager以前的版本要搭配資料庫使用比較麻煩,還好這個套件有在持續更新…