• 締切済み

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>

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

> //データ存在チェックのところをすべて消して実行したら$rowがないといわれてしまいます > どうすれば? 実際に実行しているSQLが望んだ通りのものになっているか等確認しましたか? mysql_query を実行する前の行で var_dump($sql); を実行してみて中身を確認してみましょう。 また、「// データの存在チェック」の所で $row=mysql_fetch_array($res); var_dump($row); とやってみて、取得したデータが望んだ通りのものか確認してみましょう。

noname#197690
質問者

お礼

ありがとうございます mysql_queryを実行する前の行でvar_dump($sql)を実行したところ string(64) "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`=0" データが削除されています と出ました これはちゃんと渡せてないということですか?

noname#197690
質問者

補足

ちなみに番号0というデータはありません 1から11までしか作っていません

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

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> を追加

noname#197690
質問者

お礼

ありがとうございます 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>

noname#197690
質問者

補足

//データ存在チェックのところをすべて消して実行したら$rowがないといわれてしまいます どうすれば?

関連するQ&A