- 締切済み
mysql データ表示
下記のプログラムは詳細を選択すると選択されたデータをいま1件ずつ表示しているのですが 氏名と住所を編集できるようにテキストボックスにしたいまた選択されたデータを初期値として取りたいです 表示されるのですが入力できません どこにフォームなどの命令を入れればいいですか 全体表示の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"); // 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> <th>詳細</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<td><a href=\"exit.php?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> 詳細表示の exit.php <html> <body> <table border='1'> <BR><BR> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr> <?php $id=(isset($_GET["id"]))?((int) $_GET["id"]):0; $con=mysqli_connect("localhost","root","admin","db_test"); $result = mysqli_query($con,"SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`={$id}"); while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { print "<tr>"; print "<td>".htmlspecialchars($row["番号"])."</td>"; print "<td>".htmlspecialchars($row["氏名"])."</td>"; print "<td>".htmlspecialchars($row["住所"])."</td>"; print "</tr>"; } ?> </table> <BR><BR> <A HREF="http://localhost/top.php"> <INPUT TYPE = "SUBMIT" VALUE = "一覧へ戻る"></A> </body> </html>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13705)
> //データ存在チェックのところをすべて消して実行したら$rowがないといわれてしまいます > どうすれば? 実際に実行しているSQLが望んだ通りのものになっているか等確認しましたか? mysql_query を実行する前の行で var_dump($sql); を実行してみて中身を確認してみましょう。 また、「// データの存在チェック」の所で $row=mysql_fetch_array($res); var_dump($row); とやってみて、取得したデータが望んだ通りのものか確認してみましょう。
- t_ohta
- ベストアンサー率38% (5238/13705)
exit.php <table> の前に <form .......> を追加 while のループの所を while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { ?> <tr> <td><input type="text" name=番号" value="<?php print htmlspecialchars($row["番号"]); ?></td> <td><input type="text" name=氏名" value="<?php print htmlspecialchars($row["氏名"]); ?></td> <td><input type="text" name=住所" value="<?php print htmlspecialchars($row["住所"]); ?></td> </tr> <?php } ?> <tr><td colspan="3"><input type="submit"></td></tr> </table> の後に </form> を追加
お礼
ありがとうございます 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}"; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データの存在チェック if(!$row=mysql_fetch_array($res)){ 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>
補足
//データ存在チェックのところをすべて消して実行したら$rowがないといわれてしまいます どうすれば?
お礼
ありがとうございます mysql_queryを実行する前の行でvar_dump($sql)を実行したところ string(64) "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`=0" データが削除されています と出ました これはちゃんと渡せてないということですか?
補足
ちなみに番号0というデータはありません 1から11までしか作っていません