※ ChatGPTを利用し、要約された質問です(原文:MySQLでデータ表示)
MySQLでデータ表示
MySQLでデータの表示を行っています
10件ずつ表示し、11件からは2ページ目に表示したいです
サイトや本を見ながらデータ表示と次の10件のリンクは表示されるよう自力で頑張ったのですが
次の10件を押してもデータが変わらず1件目から10件目のままです
どこが違うか教えてもらえますか。
どうコードを入力するか教えてくれたらありがたいです
一覧 ta2.phpです
<html>
<body>
<form action = "ta2.php" method="GET">
<input type="hidden" name="page" value="0">
</form>
<?php
//データベースに接続
if (!$con = mysql_connect("localhost", "root", "admin")) {
echo "接続エラー" ;
exit ;
}
//データベースを選択
if (!mysql_select_db("db_test", $con))
{
echo "データベース選択エラー" ;
exit ;
}
//LIMITを使ったSELECT文を作成
$sql = "select * from tbl_test" ;
$sql.= " limit " . $page*10 . ", 10" ;
//SQL実行
if (!$res = mysql_query($sql))
{
echo "SQLエラー<BR>" ;
exit ;
}
//検索結果表示
echo "<table border='1'>
<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
<th>操作</th>
</tr>";
while($row = mysql_fetch_array($res))
{
$ID = htmlspecialchars($row['番号']);
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
echo "<tr>
<td>$ID</td>
<td>$NAME</td>
<td>$ADDR</td>
<td><a href='edit.php?番号=$ID'>修正</a>
<a href='delete.php?番号=$ID'>削除</a></td></tr>";
header('content-type: text/html; charset="utf-8"');
if ($_GET) { // データがGETされていたら
$page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得
}
}
$sql = "select count(*) from tbl_test " ;
if (!$res = mysql_query($sql)) {
echo "SQLエラー<BR>" ;
exit ;
}
$row = mysql_fetch_array($res) ;
$cnt = $row[0] ;
//ページ表示
if(!$cnt > 10)
echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ;
//前の10件
if ($page != 0) {
echo "<a href = ta2.php?page= $page>" ;
echo "< 前の10件" ;
}
//次の10件
if (($page + 1)*10 < $cnt) {
echo "<a href = ta2.php?page= $page>" ;
echo " 次の10件 " ;
}
//結果セットの開放
mysql_free_result ($res) ;
//データベースから切断
mysql_close($con) ;
?>
</table>
</body>
</html>
お礼
いつもありがとうございます 先に $page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得して $sql.= " limit " . $page*10 . ", 10" ; をやるということですか?