
一覧画面に更新ボタンを作成しました
更新ボタンを押すとkoushin_input.phpにデータを渡し入力フォームを表示され番号、氏名、住所が選択されたデータが表示されるようにしたいのでが更新ボタンを押しても下記のように出ます
string(64) "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`=0" bool(false) データが削除されています
ソースコードはtop.php
一覧画面です
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>一覧画面</title>
</head>
<body>
<BLOCKQUOTE>
<BR>一覧画面<BR><BR>
<?php
$con=mysqli_connect("localhost","root","admin","db_test");
if(isset($_GET["del"]) and isset($_GET["id"]) and $_GET["del"]==1){
$id=(int) $_GET["id"];
$result = mysqli_query($con,"DELETE FROM tbl_test where `番号`={$id}");
}
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM tbl_test");
echo "<table border='1'>
<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['番号'] . "</td>";
echo "<td>" . $row['氏名'] . "</td>";
echo "<td>" . $row['住所'] . "</td>";
echo "<form action=koushin_input.php method=get>";
echo "<td><input type=submit value=更新></td>";
echo "</form>";
echo "<td><a href=\"".$_SERVER["SCRIPT_NAME"]."?del=1&id=".$row['番号']."\">削除</a></td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
<BR><BR><BR> <A HREF="http://localhost/regist.php">
<INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A>
</BLOCKQUOTE>
</body>
</html>
受け取る側
koushin_input.phpです
<html>
<body>
<?php
// データベースに接続
if(!$con=mysql_connect("localhost","root","admin")){
echo"接続エラー";
exit;
}
// データベースを選択
if(!mysql_select_db("db_test",$con)){
echo"データベース選択エラー";
exit;
}
// SELECT文を実行
$id=(isset($_GET["id"]))?((int) $_GET["id"]):0;
$sql = "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`={$id}";
var_dump($sql);
if(!$res=mysql_query($sql)){
echo "SQL実行時エラー";
exit;
}
// データの存在チェック
if(!$row=mysql_fetch_array($res)){
$row=mysql_fetch_array($res);
var_dump($row);
echo "データが削除されています";
exit;
}
// 入力画面の出力
echo "<form action=koushin.php method=post>";
echo "名前:<input type=text name=NAME value=\"" . $row['氏名'] . "\"> ";
echo "住所:<input type=text name=ADDR value=" . $row['住所'] . "> ";
echo "<input type=submit value=更新>";
echo "</form>";
// 結果セットの解放
mysql_free_result($res);
// データベースから切断
mysql_close($con);
?>
</body>
</html>
どこが原因なんでしょうか?
No.1ベストアンサー
- 回答日時:
top.php の
echo "<form action=koushin_input.php method=get>";
echo "<td><input type=submit value=更新></td>";
echo "</form>";
で id を渡していないから。
HTMLの基本です。
echo "<form action=koushin_input.php method=get>";
echo "<input type=hidden name=id value=".$row['番号'].">";
echo "<td><input type=submit value=更新></td>";
echo "</form>";
としましょう。
ありがとうございます
string(65) "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`=11"
こう出ます
No.2
- 回答日時:
top.phpのGETパラメータに、「id」が存在しないようですが。
<form>~</form>の間に送るべき値、例えば
echo "<input type=\"hidden\" value=\"$row['番号']\">";
などがありません。
URLで、koushin_input.phpの後ろにGETパラメータありますか?
これだと、koushin_input.phpの
$id=(isset($_GET["id"]))?((int) $_GET["id"]):0;
この部分は、必ず0になると思われます。
もしなら
echo "<form action=koushin_input.php method=get>";
を
echo "<form action=koushin_input.php?id=$row['番号'] method=get>";
としてもいいかもしれません。
当然、限定的な環境下での利用方法になりますが。
で、データが削除されたのではなく、番号=0が純粋に
存在しないから発生しているのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 1068 (42000): 複数の主...
-
【投稿情報用データベース post...
-
SQLです!!教えてください。あ...
-
本を見ながらPHPを勉強している...
-
mysqlがインストールされている...
-
`picture` varchar(255) のコマ...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql sqlエラー
-
配列の要素でmysqlに問い合わせ
-
PHP+MYSQLで検索画面を作成し...
-
フォームからmySQL-DBにデータ...
-
フォームから送信した値とMySQL...
-
mysql insert文
-
PHP + PDOでデータ登録
-
MySQLからのデータをページに1...
-
PHPにてSQLから取得したデータ...
-
検索結果にリンクを生成
-
プレースホルダを使った複数カ...
-
mysqlの置換について2
-
mysql 接続について
-
検索機能
-
mysql limitページ分割
-
MySQLでの順位付けについて
-
mysql データ更新
-
PDOでDB ページング
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
おすすめ情報