アプリ版:「スタンプのみでお礼する」機能のリリースについて

たとえばmysqlのレコードが100件あるとして、
それを10件ずつページを分けてphpを使ってページに表示するには
どうすればいいのでしょうか?

googleの検索結果表示のようなかんじです。

A 回答 (3件)

100件程度ならば配列に全データを入れてforeachで回す。

とか。
普通にLimitを使ったほうが簡単でしょうけど。

以下サンプル。適当に作ったから動かないかも。

$p = $_GET['p'];
$p_start = $p*10; # 表示スタート
$p_end = $p_start+10; # 表示終了
$next_p = $p++; # 次のページ
$back_p = $p--; # 前のページ
$i=0;
$all_data_count = ceil(count($data)/10);
foreach ($data as $d) {
if ($p_start <= $i and $i < $p_end) {
print $d;
}
}
if ($back_p >= 0) {
print "<a href=\"${cgi}?p=$back_p\">次へ</a>";
}
if ($next_p <= $all_data_count) {
print "<a href=\"${cgi}?p=$next_p\">次へ</a>";
}
    • good
    • 0

全てのレコード表示は


$sql = "SELECT * FROM tablename";
として、それを10件だけセレクトすると言う場合は
$sql = "SELECT * FROM tablename LIMIT 0,10";
となります。LIMITで取得数を制限出来ます(0件目から10件を取得)。
次の10件、と言う場合は
$sql = "SELECT * FROM tablename LIMIT 10,10";
さらに次の20件と言う場合は
$sql = "SELECT * FROM tablename LIMIT 20,10";
.......

となります。
これをリンクに反映させれば良いです。
例えば
<a href="/?a=0">最初</a>
<a href="/?a=10">10</a>
<a href="/?a=20">20</a>
......

と言う感じです。
変数をGETで渡す場合はSQLインジェクション対策を忘れずに。
参考まで。
    • good
    • 0
この回答へのお礼

ありがとうございました☆
細かな書き込みで、大変わかりやすいです(*^-^)

今後も精進して初心者を早く脱出したいです。
SQLインジェクション対策についても、調べます。

お礼日時:2006/12/04 10:59

MySQLでLimitをつけてデータをわたせばよいでしょう。


PHPのページの過去ログで「mysql limit」とかで検索してみてください
    • good
    • 0
この回答へのお礼

ありがとうございました☆
おっしゃったとおり調べてみます。

お礼日時:2006/12/04 10:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!