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>
No.1ベストアンサー
- 回答日時:
>$page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得
で、$pageを検証する前に
>$sql.= " limit " . $page*10 . ", 10" ;
で変数$pageを利用しています
そのままだと常に$sqlのlimitは0始まりになります
いつもありがとうございます
先に
$page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得して
$sql.= " limit " . $page*10 . ", 10" ;
をやるということですか?
No.3
- 回答日時:
初心者なら、プログラムを書く前に、「設計図」をきちんと作ってはどうでしょうか?
そして、全部一度にやろうとしないで、一つ一つ部品を分けてやっていきませんか?
まずは
~?page=2
でアクセスしたら
現在 2 頁
<前 次>
と表示され、「前」には ~?page=1 「次」には~?page=3 にリンクが張られている、というプログラムを作ってみましょう。
当然、 page=3でアクセスすれば 「前」には ~?page=2 「次」には~?page=4 となるように、です。
あなたが作ろうとしているのは、このプログラムから 「現在 2 頁」と表示する部分を変えただけのものです。
このプログラムができないようでは、あなたが作ろうとしているものなどできません。
No.2
- 回答日時:
>先に
>$page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得して
>
>$sql.= " limit " . $page*10 . ", 10" ;
>をやるということですか?
やるかどうかは質問者さんが決めることなので、私が絶対にやれとは言いませんが
前述したとおり定義されていない$pageという変数を利用している以上
$pageは0だと判断されるか、エラーになるかのどちらかです。
定義書とかフローチャートとか書いてないんですか?
この回答への補足
こういうことですか?
if (isset ($_GET['page'])==false) {
$page=0;
} else {
//そうでなければpageパラメータの値をpage変数にセット
$page = $_GET['page'];
}
//LIMITを使ったSELECT文を作成
$sql = "select * from tbl_test" ;
$sql.= " limit " . $page*10 . ", 10" ;
これを行って警告はなくなったのですが、まだ次の10件押しても変わらないです。
助けお願いします
まだどこかおかしいですか
ありがございます
エラーではないのですが
Notice: Undefined variable: page と出ます
おっしゃるとおり定義されてないということですよね?
どう定義すればいいんですか?
すいませんが教えていただけませんか?
またアドレスバーに直接?page = 1と入力すると11件目からのデータが表示されます
定義書は書いてません
フローチャ-トはこうなったらここに遷移するみたいなのは書きましたすいません
何度もすいません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLで日付別のIDを生成するには
-
下記の問合せを行うクエリを、P...
-
SQLについて教えて下さい。 SEL...
-
SQLでカラムを追加し、条件に合...
-
MySQLでエラーがでて前に進めま...
-
PhpMyAdminで作成して実行せよ...
-
下の画像はSQLの4大命令の性質...
-
SQLのサブクエリについて
-
SQLです。こんな感じですか?あ...
-
次の時間帯の勝率の合計を求め...
-
select *, `人口(男)`AND`人口(...
-
mysqlのupdate構文についての質...
-
下記の問合せを行うクエリを、P...
-
PHP 画像のアップロード Qiita
-
`picture` varchar(255) のコマ...
-
php テーブルを作れない
-
MySQLのテーブル作成で 自信が...
-
MySQLでcreateが使えない MySQL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでMySQLを使った検索のプロ...
-
プレースホルダを使った複数カ...
-
フォームから送信した値とMySQL...
-
pdfファイルの管理システム
-
フォームからmySQL-DBにデータ...
-
mysql+php リストボックスにつ...
-
PHP + PDOでデータ登録
-
mysql sqlエラー
-
検索機能
-
mysql limitページ分割
-
php+MySqlでの検索ページ
-
mysqlとphpを使った入力画面で...
-
MySQLでデータ表示
-
接続ができません
-
Microsoftストアのソフトは特別...
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
like句を使って日本語を検索す...
-
プライマリーキーの昇順でソー...
おすすめ情報