HOME > 簡易データベースを作ってみよう > 

§1ページを10件表示に制限する

データ数が多くなってくると必然的に検索結果の表示件数も増えます。
1ページあたりの表示件数があまり多すぎるのも考えものですね。
1ページあたりのデータ数を10件に区切って表示する方法を考えてみましょう。

ページはクエリで制御する

例としてすべてのデータを1ページ10件ずつに区切って表示するプログラム(allitem.php)を作ってみましょう。

1ページ目

<ol>
<?php
$Data=file("item.csv");
for($i=0;$i<10;$i++){ //解説(1)
$line=explode("‚ "‚ $Data[$i]);
$ID=$line[0];
$Title=strip_tags($line[3]);
print"<li><a href='item.php?id={$ID}'>{$Title}</a></li>";
}
?>
</ol>

解説(1)
これは簡単ですね。
繰り返しの制御を0から10未満にすれば良いだけです。
2ページ目はこの部分が
for($i=10;$i<20;$i++){ 〜 }
となります。

さて、これらを自動化するにはfor文の制御を計算式に直さなければいけません。
ページを区別するにはクエリを使えば良いですね。
1ページ目(p=0)2ページ目(p=1)・・・
とすると
$P=$_GET["p"];
for($i=$P*10;$i<$P*10+10;$i++){ 〜 }
となります。

次にナビゲーションリンクを自動生成する方法を考えてみましょう。
<?php
//解説(2)
if($P>0){
$Prev=$P-1;
$PrevPage="<a href='allitem.php?p={$Prev}'>前の10件</a>";
}
//解説(3)
$Size=sizeof($Data);
if($Size/10-1>$P){
$Next=$P+1;
$NextPage="<a href='allitem.php?p={$Next}'>次の10件</a>";
}
?>

解説(2)
「前のページ」へ戻るナビゲーションを作りましょう。
基本的にpの値を一つ減らせば一つ前のページへのリンクになります。
ただし、1ページ目(p=0)より前はありえませんので
if($P>0)
と条件を設定しておきます。

解説(3)
「次のページ」へのナビゲーションは少し複雑になります。
最後のページが特定できないとエンドレスにリンクが続く悲しいサイトになってしまいますね(笑)
例えばデータ数が100なら10ページ目(p=9)が最後ですね。
「データ数÷10-1」未満ならリンクを生成するようにします。

$PrevPageと$NextPageを任意の場所に貼り付けてナビゲーションの出来上がりです。

プログラムのご使用による損害は直接、間接に関わらず一切の責任をもちません。ご使用は自己責任でお願いします。

簡易データベースを作ってみよう

  1. 仕組みとファイル構成
  2. CSVとは
  3. トップページを作る
  4. カテゴリー別ページを作る
  5. アイテム別ページを作る
  6. フリーワード検索を作る
  7. 検索結果がゼロの場合の処理
  8. 絞込み検索(and検索)
  9. 1ページを10件表示に制限する
  10. 登録画面を作る。
  11. CSVへの書き込み
  12. データを編集する。
  13. データを削除する。

メイン・メニュー

  1. はじめに
  2. 入門者向け参考書
  3. PHPの基本
  4. ローテーション・バナーを作ってみよう
  5. 検索結果リンクを自動化しよう
  6. 簡易データベースを作ってみよう
  7. ホームページ制作のためのリンク集

PHPが使えるサーバー

僕が使っているサーバーとドメイン管理のレジストラーです。

ロリポップ!
多くのアフィリエイターが支持する安くて安心の初心者向けレンタルサーバー。MySQLを使うなら↓のチカッパの方が軽いです。
チカッパ!
複数サイトの管理に便利なマルチアカウント、マルチドメイン対応。月額525円〜で500MBの大容量。
ムームードメイン
有料サーバー借りるなら独自ドメインは必須!「.com」「.net」なら年間数百円で取得可能です。ロリポ、チカッパの併用でDNS設定も超簡単!

管理人のブログ

音楽サイトでアフィリエイトblog
音楽アフィリエイトとサイト運営の効率化を考えるブログ