• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースのページング出力を行うPHPのコード)

データベースのページング出力を行うPHPのコード

このQ&Aのポイント
  • データベースのページング出力を行うためのPHPのコードを教えてください。
  • MySQLのデータを10行ずつHTMLに出力し、ページングを実現するPHPの模範コードを教えてください。
  • PHPで10行ずつデータを取得し、HTMLに出力する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.2

簡単なページング機能付きで書いてみました。 細部でなにかしら修正が必要かもしれないのでがんばってください。 (質問文を見るとGETを使うような記述でしたがこれはPOSTで処理してます) 検索機能とか付けてみるのも勉強になると思いますよ。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Pragma" content="No-Cashe"> <meta http-equiv="Cache-Control" content="No-Cache"> <title>リスト</title> <script type="text/javascript"> <!-- function changepage (page) { document.forms["linkform"].page.value = page; document.forms["linkform"].submit(); } --> </script> </head> <body> <?php // MYSQL DB接続パラメータ設定(自分の環境に合わせて設定) $host=""; // ホスト名 $user=""; // ユーザー名 $pass=""; // パス $dbname=""; // 使用DB名 // 表示するページの決定 if (isset($_POST["page"])) { $page=$_POST["page"]; } else { $page=1; } // MYSQLコネクト mysql_select_db($dbname,mysql_connect($host,$user,$pass)) or die("DBコネクトエラー"); // 1ページ表示最大件数設定 $maxrow=10; // 全件数を取得 $sql = "SELECT count(*) as count FROM pet"; $result=mysql_query($sql); $row=mysql_fetch_assoc($result); $count = $row["count"]; // 表示するページのデータの先頭行と最終ページの値を計算する $first = (($page-1)*$maxrow); $maxpage=intval((($count-1)/$maxrow)+1); // ページリンク作成(表示ページの番号は少し大きくする) $pagelink = "全".$count."件<br>\n"; for ($i=1;$i<=$maxpage;$i++) { $pagelink = $pagelink."<a href=\"#\" onclick=\"changepage('".$i."');return false;\">"; if ($i==$page) { $pagelink = $pagelink."<font size=\"+2\">".$i."</font></a> "; } else { $pagelink = $pagelink.$i."</a>\n"; } } print($pagelink."<br><hr>"); // 情報を取得 $sql = "SELECT id,title,url,score FROM pet"; $sql = $sql." ORDER BY id limit ".$first.", ".$maxrow; $result=mysql_query($sql); while($row=mysql_fetch_assoc($result)) { ?> <?php print($row["id"]); ?><a href="<?php print($row["url"]); ?>"><?php print($row["title"]); ?></a><?php print($row["score"]); ?><br> <?php } ?> </table> <form action="list.php" name="linkform" method="post"> <input type="hidden" name="page" value=""> </form> </body> </html>

spinia0120
質問者

お礼

おお!ご回答、ありがとうございます! duronさんが作成してくれたコードを参考にして、自分のコードはどこが悪かったのか明日1日かけてじっくり検討してみようと思います。 これで勉強が続けられます。大変助かりました。 また問題に直面した場合は、どうかよろしくお願いいたします。 本当にありがとうございました。

その他の回答 (1)

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.1

データベースの参照結果をページングする場合の一般的な手段は、Limit句を使います。 下記のようなSQLを使います Select ... Limit (表示する行数) Offset (開始行数) ; ・1ページ 10行で、2ページ目を表示する場合は Select ... Limit 10 Offset 10 ;

spinia0120
質問者

お礼

ありがとうございます。参考にさせていただきます。

関連するQ&A

専門家に質問してみよう