PEAR pager
It takes an array of data as input and pages it according to various parameters.
It also builds links within a specified range, and allows complete customization of the output (it even works with front controllers and mod_rewrite).
Two operating modes available: “Jumping” and “Sliding” window style.
參考資料:
快速分頁 - Pager
如下程式所示,他就會列出每 10 個 item 作一頁的效果了,實例可參考 pager.php。除了使用他內定的格式之外,也可以使用自定格式,可以參考下面所列的資料來判定要不要顯示翻頁的選項。
- getCurrentPageID() : 目前頁面的 ID
- getNextPageID() : 下一個頁面的 ID
- getPreviousPageID() : 上一個頁面的 ID
- numItems() : 總共有多少個物件
- numPages() : 總共有多少頁
- isFirstPage() : 是不是在第一頁
- isLastPage() : 是不是在最後一頁
- $pager->range : 頁面範圍,如 array(”1″=>0,”2″=>1,”3″=>0); 1,2,3 就代表頁面,其中 “2″=>1 代表是目前顯示的頁面。
範例如下:
下载: pager.php
- <?php
- include('adodb/adodb.inc.php');
- require_once 'Pager/Pager.php';
- $server = "127.0.0.1";
- $user = "":
- $pwd = "";
- $db = "";
- $DB = NewADOConnection('mysql');
- $DB->Connect($server, $user, $pwd, $db);
- $sql1 = 'SELECT count(`id`) as total FROM `lt_articles`';
- $rs = $DB->Execute($sql1);
- $total = $rs->FetchRow(); //取得資料總數
- $total = $total[0];
- $params = array(
- 'mode' => 'Sliding',
- 'perPage' => 10,
- 'totalItems' => $total,
- 'delta' => 4,
- 'urlVar' => 'page',
- );
- $pager = & Pager::factory($params);
- $offset = $pager->getOffsetByPageId($pager->getCurrentPageID());
- $offset[0] -= 1;
- $sql2 = 'SELECT * FROM `lt_articles` LIMIT '.$offset[0].', '.$pager->_perPage;
- echo $pager->links; // 這樣子就會產生分頁所需要的連結,點選後的參數也會帶入資料庫查詢中,
- $rs = $DB->Execute($sql2);
- echo "<table>";
- while($articale = $rs->FetchRow())
- {
- ?>
- <tr>
- <td><?php echo $articale['id']?></td>
- <td><?php echo $articale['date']?></td>
- <td><?php echo $articale['user_id']?></td>
- </tr><?php
- }
- echo "</table>";
- ?>
- <pre>
- getCurrentPageID()...: <?php var_dump($pager->getCurrentPageID()); ?>
- getNextPageID()......: <?php var_dump($pager->getNextPageID()); ?>
- getPreviousPageID()..: <?php var_dump($pager->getPreviousPageID()); ?>
- numItems()...........: <?php var_dump($pager->numItems()); ?>
- numPages()...........: <?php var_dump($pager->numPages()); ?>
- isFirstPage()........: <?php var_dump($pager->isFirstPage()); ?>
- isLastPage().........: <?php var_dump($pager->isLastPage()); ?>
- isLastPageComplete().: <?php var_dump($pager->isLastPageComplete()); ?>
- $pager->range........: <?php var_dump($pager->range); ?>
- </pre>
No comments
Comments feed for this article
Trackback link
http://blog.twkang.net/2006/08/07/adodb-%e9%85%8d%e5%90%88-pear-pager-%e5%88%86%e9%a0%81%e5%b7%a5%e5%85%b7/trackback/