ページング処理をPEARで
データベースからデータを取得する際、データの件数が多い場合はページング処理をして出力するのは当然だ。今まではこの記述を全て自前で書いていた(「データ取得時のページング処理」を使っていた)。
もちろんPEARの中に、Pagerというページング処理をおこなうためのクラスがあることは知っていた。しかしつい最近まで「Pagerを使う場合は事前にデータをすべてDBからフェッチしておかないといけないから、大量データのあるテーブルの場合は役に立たない」と考えていた(ということで使わなかった)。
実は心の中で「こんな当たり前の処理、絶対に簡単にできるためのツールがあるはず」と思っていたけど、探したり、調べたりするのが面倒だったから、結局自前で書いていた。
今日一大決心(というほどのことではないけれど)をして探してみた!。そしたらあっさり見つかった。PEARのPagerをラッパーしたクラスとのことだった。
Pager_Wrapper.php
これを使うとなんと超簡単。あっという間にページング処理をやってくれる。
こんな感じ。
//Pagerを使う際のオプションを設定(他にもいろいろあり)
$pagerOptions=array();
$pagerOptions[‘mode’]=’Sliding';
//1ページに10レコードずつ
$pagerOptions[‘perPage’]=10;
//自動で生成するリンクの数(「次ページを入れて前後に3つずつ」ということ)
$pagerOptions[‘delta’]=3;
//表示したいページ番号
$pagerOptions[‘currentPage’]=1;
$sql=”SELECT shohin_id,shohin_name FROM tbl_shohin ORDER BY shohin_id;”;
$pagedData=Pager_Wrapper_MDB2($myDB,$sql,$pagerOptions);
print_r($pagedData);
たったこれだけ。これだけで必要なデータは全て$pagedDataに配列で格納されてくる。すご〜い。
これを作った人に感謝。この紹介記事を書いた人に感謝。検索エンジンに感謝。探す勇気を出した自分に感謝。