全件データを取得する場合

小規模データベース向き

$sql = 'SELECT * FROM table';
$itemData = $mdb2->queryAll($sql);

require_once('Pager.php');

$extraVars = array(
    'F' => 'function'
  , 'A' => 'action'
);
$params = array(
      'perPage'     => 5
    , 'itemData'    => $itemData
    , 'importQuery' => FALSE
    , 'extraVars'   => $extraVars
);
$pager = Pager::factory($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();

全件数のみ取得し、後から必要データのみを取得する場合

大規模データベース向き

$sql = 'SELECT * FROM table';
$res = $mdb2->query($sql);
$total = $res->numRows();

require_once('Pager.php');

$extraVars = array(
    'F' => 'function'
  , 'A' => 'action'
);
$params = array(
      'perPage'     => 5
    , 'totalItems'  => $total
    , 'importQuery' => FALSE
    , 'extraVars'   => $extraVars
);
$pager = Pager::factory($params);
list($from, $to) = $pager->getOffsetByPageId();
$links = $pager->getLinks();

$mdb2->setLimit($params['perPage'], $from - 1);
$data = $mdb2->queryAll($sql);

Rewriteしたりしている場合

$sql = 'SELECT * FROM table';
$itemData = $mdb2->queryAll($sql);

require_once('Pager.php');

$params = array(
      'path'        => '/user/'.$user_id
    , 'append'      => FALSE
    , 'fileName'    => '?pageID=%d'
    , 'perPage'     => 5
    , 'itemData'    => $itemData
);
$pager = Pager::factory($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();

全データ数

$total   = $pager->numItems();

現在のページ

$current = $pager->getCurrentPageID();

全ページ数

$all     = $pager->numPages();

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-27 (金) 17:13:23 (3556d)