MySQLで取得するデータの行数を指定する。

電脳備忘録
ECサイトなどではよくページ送りが実装されています。アイテム数が多い場合適当に分割してレイアウトしないとユーザビリティの低いサイトになってしまいます。以前APIのレスポンスの値からページ送りを実装したことがあったのですが、今回はデータベースの値を利用してページ送りを実装してみました。ページ送りには「PEAR::Pager」を利用しています。

お約束

参照は自己責任でお願いします。

実現したかったこと

1ページに12アイテム表示させる。
ページをカウントアップと連動してデータを取得する。
PDOでデータベースに接続

やったこと

取得するデータの行数(上限)を指定するにはLIMIT句を使うようです。 $currentPageIDには現在表示されているページの値が格納されていて、その値から1マイナスして12を掛けた値の次の行から12件のデータを取得するようにしています。
・
・
$pageTop = ($currentPageID - 1) * 12 ;
$limit = 12;
・
・
$sth = $dbh->prepare( "SELECT * FROM Itemtable WHERE Title 'キーワード' ORDER BY id ASC LIMIT $start, $limit " );
$sth->execute ();
・
・
上記の例だと、検索キーワードの検索結果に対して1ページの時は先頭から12件取得、2ページ目の時は13件目から12件取得、3ページ目の時は25件目から12件取得・・・といった具合です。

この方法が正しいかどうかはわかりませんが、とりあえず実装することが出来ましたとさ。爽快爽快・・・。
参照サイト:取得データの行数を制限
SELECT * FROM orderdata LIMIT 3, 10;
上記の場合、4番目のデータから取得する行数の上限を10としてデータを取得します。

広告

ブログの維持費に充てるでございます・・・。