ページングをしてくれるフレームワーク的なものを探していたけどPEAR::Pagerというのしか見つからなかった。
このPEAR::PagerはDBから全件とってきたあとに、必要件数だけ画面に返すという実装になっているっぽくて、それがいやだったから手前で作ることにした。
このPEAR::PagerはDBから全件とってきたあとに、必要件数だけ画面に返すという実装になっているっぽくて、それがいやだったから手前で作ることにした。
で、DBからの取得部分を書こうとしてて、Zend_Db_SelectにlimitPage()という地味に便利なメソッドがあることを発見した。
limitPage(ページ数, ページごとの表示件数)という指定をすると、offsetとlimitを適切にはじき出してくれるそうな。
ちなみにDBはMySQLより遥かに優れたPostgreSQLを使っているのですが
・ページ数指定のところで0と1は同じ扱いだった。
・データ上限を超えるページ数を指定すると0件が返る。
といったところでした。
追記:やっぱこれなくてもいいわ。なんか、初め感動したけどやっぱなくてもいいわ。
敬具。
コメントする