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が使えるサーバー

僕が使っているサーバーです。

エックスサーバー
多くのアフィリエイターが支持するレンタルサーバー。
当サイトでも使用しています。

管理人のブログ

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