PEAR::Pager + PEAR::MDB2

PEAR::Pager 使ったことないので、PEAR::MDB2と合わせて使ってみようと思ったらこんなソースになった。

PEAR::Pager の拡張クラスとかで、直接 DB を参照しにいく機能とかもありそうな気がするのけど、とりあえずパス。

[php] <?php require_once('MDB2.php'); require_once('Pager.php');

$p = (int) isset($GET['p']) ? $GET['p'] : 1; $limit = 12;

$dsn = 'mysql://user:password@localhost/test'); $dbh =& MDB2::factory($dsn); $dbh->loadModule('Extended');

$totalItems = $dbh->queryOne('SELECT COUNT(*) FROM shops');

$list = $dbh->getAll( 'SELECT * FROM shops ORDER by id DESC LIMIT ?,?', null, array*1;

$pager =& Pager::factory(array( 'urlVar' => 'p', 'totalItems' => $totalItems, 'currentPage' => $p, 'perPage' => $limit, ));

echo ''; echo $pager->links; echo '
'; foreach ($list as $row) { echo $row['id'] . ',' . $row['name'] . '
'; }

echo '';

exit; ?>[/php]

*1:$p - 1) * $limit, $limit