こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

MySQLとPHPで一覧表示させページ分割するには

PHP初心者です。

フォトライブラリを作っているのですが、MySQLからのデータを指定件数表示させることは出来るようになりました。
しかしその後の「次のページ」リンクを作り、クリックされた際に次ページで次の一覧を表示させる方法(ページ生成)がわかりません。

静的ページにしたいので、mod_rewriteを使うとの事がわかったのですが、それを具体的に使う方法がわかりませんでした。

サーバへどのような要求があった際にどのようなページを表示させる、等が出来るようなのですが、実際の静的ページ生成の方法・ソースが発見出来ませんでした。

わかりやすいサイトがございましたら教えてくださいませ。

投稿日時 - 2011-08-17 12:48:14

QNo.6948355

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

まずはSQLとPHPだけのお話しを。
mod_rewriteについてはこれが理解出来ていないと完全に無理なので、
通常のURLで出来るようになってから考えて下さい。


まず、こんなかんじのSQL(limit句)を使うと指定した位置のデータを取得出来ます

51件目のデータから10件データを取得する場合
select * from table limit 50,10

参考
http://www.dbonline.jp/mysql/select/index12.html

一回に表示できるデータ量は10件固定とすると、50の部分を変えれば取得したいページが変わることになります。

2ページを取得したいならこんな感じ。
・url
http://hoge.com/index.php_offset=10;

・PHP
$offset = mysql_real_escape_string($_GET['offset']);
$query = 'select * from table limit ' .$offset . ',10 ' ;

とりあえずここまでで、
URLに直接offsetを指定すればページ指定が出来るようになったので、
あとは
・現在のページURLを変数に入れる
・次のページURLを現在のoffsetから生成する(+10する)
・1つ前のページURLを現在のoffsetから生成する(-10する)
を実装すれば、前後のページ移動できるようになります。

複数ページ移動や、次のページが存在しない場合はリンクを表示しないなど
考えることは色々ありますが、一つづつクリアしていくのがいいかと思いますよ。

*ページャーを扱うライブラリも存在しますが、まずはどうすれば動くかを理解していないとライブラリの利用も難しいです。

投稿日時 - 2011-08-17 13:45:33

あなたにオススメの質問