データのページ分割を行う

PHP
MySQL

ページ分割処理というんですか?商品リストの取得や、記事ページの取得などで、取得データの個数が多くなった時に、1ページに表示するデータ数は決めておいて、
「<前ページ 現ページ 次ページ>」
とするのが一般的ですよね。

しかし、あの処理って結構複雑で面倒じゃないですか?

PEARのPagerクラスを使うと、それがいとも簡単にできてしまいます。
(参考)
http://www.go-pear.org/manual/ja/package.html.pager.intro.php

(Pager.phpがなければ、PEAR 新しいパッケージをインストールするのようにPagerパッケージをインストールしましょう。)

上記のサイトの例に、解説を加えてみました。

 <?php
 require_once 'Pager.php';
 $params = array(
    'mode'       => 'Jumping',
    'perPage'    => 3, //(1ページに表示されるデータ数)
    'delta'      => 2, //(何ページにわたって表示するか、という数)
    'itemData'   => array('a','b','c','d','e',[...omissis...],'z')

  //実際に使用する場合は、この’itemData’にSQLでとってきた配列などを指定すればOK。

 );
 $pager = & Pager::factory($params);
 $data  = $pager->getPageData();
 $links = $pager->getLinks();
 //$links is an ordered+associative array with   'back'/'pages'/'next'/'first'/'last'/'all' links.
 //NB: $links['all'] is the same as $pager->links;
 //echo links to other pages:
 echo $links['all'];
 ?>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です