
いま下記のソースで一覧画面が表示されます!
氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません
参考までに教えてください
<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","password","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>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['番号'] . "</td>";
echo "<td>" . $row['氏名'] . "</td>";
echo "<td>" . $row['住所'] . "</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>
No.8ベストアンサー
- 回答日時:
こうなるとおそらくもう釣りだと思うんだけど一応かいときます
もし釣りじゃなければ何か参考書でもかって基礎から学習したほうがいいと思います。
<table border='1'>
<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
</tr>
<?PHP
$id=(isset($_GET["id"]))?((int) $_GET["id"]):0;
$con=mysqli_connect("localhost","root","password","db_test");
$result = mysqli_query($con,"SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`={$id}");
while($row = mysqli_fetch_array($result,MYSLQI_ASSOC)){
print "<tr>";
print "<td>".htmlspecialchars($row["番号"])."</td>";
print "<td>".htmlspecialchars($row["氏名"])."</td>";
print "<td>".htmlspecialchars($row["住所"])."</td>";
print "</tr>";
eof;
}
?>
</table>
前回は<tr>の位置がまちがってました。
ちなみに、削除するときは
DELETE FROM tbl_test where `番号`={$id}
で削除することになります
つりじゃないです
ありがとうございます。表示できました。
その画面からデータの編集を行いたいのですが、番号はそのままで氏名と住所だけ入力できるようにしたいのですがどこにどんな命令をいればいいと思いますか?
何度もすいません
No.7
- 回答日時:
なんか噛み合ってないね
詳細がみたいんでしょ?
だったら要素名と値を表示するんじゃないの?
<table border='1'>
<tr>
<th>要素名</th>
<th>値</th>
</tr>
<?PHP
$id=(isset($_GET["id"]))?((int) $_GET["id"]):0;
$con=mysqli_connect("localhost","root","password","db_test");
$result = mysqli_query($con,"SELECT * FROM tbl_test where `番号`={$id}");
while($row = mysqli_fetch_array($result,MYSLQI_ASSOC)){
print "<tr>";
foreach($row as $key=>$val){
print "<td>".htmlspecialchars($key)."</td>";
print "<td>".htmlspecialchars($val)."</td>";
}
print "</tr>";
}
?>
</table>
そもそもテーブルの要素は「番号」と「氏名」と「住所」しかないの?
だったら元ページで一覧表示しているんだから、わざわざ詳細出す意味ないでしょ?
No.6
- 回答日時:
MYSQLI_ASSOCを指定してみてください
while($row = mysqli_fetch_array($result))
↓
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
ありがとうございます
<html>
<body>
<table border='1'>
<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
</tr>
<tr><td>番号</td><td>1</td><td>氏名</td><td>米倉 隆諭</td><td>住所</td><td>福井県鯖江市大倉町92丁目268-6495</td></tr></table></body>
</html>
まだ番号、氏名、住所がひとつずつずれています
tableにはできないのでしょうか
No.5
- 回答日時:
> htmspecialchars()
それは失礼しました、typoです
該当関数名を htmlspecialchars() に書きなおしてみてください
この回答への補足
すいません!自分も気がつきませんでした。
できました。
出来たのですが表示がおかしいです
番号や氏名や住所が二回表示されます
画面のソースをコピーしました
<html>
<body>
<table border='1'>
<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
</tr>
<tr><td>0</td><td>4</td><td>番号</td><td>4</td><td>1</td><td>渡川 幹知</td><td>氏名</td><td>渡川 幹知</td><td>2</td><td>岩手県奥州市前沢区長根52丁目295-315</td><td>住所</td><td>岩手県奥州市前沢区長根52丁目295-315</td></tr></table></body>
</html>
No.4
- 回答日時:
>ここでエラーがおき先に進めません
で、どういうエラー?
この回答への補足
Call to undefined function htmspecialchars() in C:\WWW\test\htdoes\exit.php on line 17
これです
ソ-スは
<html>
<body>
<table border='1'>
<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))
{
print "<tr>";
foreach($row as $key=>$val)
{
print "<td>".htmspecialchars($key)."</td>";
print "<td>".htmspecialchars($val)."</td>";
}
print "</tr>";
}
print "</table>";
?>
</body>
</html>
No.3
- 回答日時:
もはや何がわからないのかわからないわ・・・
//shousai.php
<html>
<body>
<table border='1'>
<tr>
<th>要素名</th>
<th>値</th>
</tr>
<?PHP
$id=(isset($_GET["id"]))?((int) $_GET["id"]):0;
$con=mysqli_connect("localhost","root","password","db_test");
$result = mysqli_query($con,"SELECT * FROM tbl_test where `番号`={$id}");
while($row = mysqli_fetch_array($result)){
print "<tr>";
foreach($row as $key=>$val){
print "<td>".htmspecialchars($key)."</td>";
print "<td>".htmspecialchars($val)."</td>";
}
print "</tr>";
}
print "</table>";
}
?>
</body>
</html>
的なこと・・・前回例示したつもりだったんですが
手抜きで書いてあるので環境に合わせてこまかいバグがあるかもしれないので
うまく調整してください
ありがとうございます
foreach($row as $key=>$val){
print "<td>".htmspecialchars($key)."</td>";
print "<td>".htmspecialchars($val)."</td>";
}
ここでエラーがおき先に進めません
No.2
- 回答日時:
あれ?わからなかったですか?
echo "<table border='1'>
<tr>
<th>詳細</th>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td><a href=\"shousai.php?id=" . $row['番号'] . "\">詳細</a></td>";
echo "<td>" . $row['番号'] . "</td>";
echo "<td>" . $row['氏名'] . "</td>";
echo "<td>" . $row['住所'] . "</td>";
echo "</tr>";
}
echo "</table>";
のような処理です。
なお$rowを表示する際はhtmlspecialchars()を入れた方がいいかもしれません。
あとは詳細表示するプログラム側で
SELECT * FROM tbl_test where 番号=○○
となるようなSQL文を発行します
○○の部分は$_GETの値を参照しますがインジェクション対策で
プリペアド処理などを入れたり、バリデートする必要があるかもしれません。
最終的に
print "<table>";
while($row = mysqli_fetch_array($result))
{
print "<tr>";
foreach($row as $key=>$val){
print "<td>".htmspecialchars($key)."</td>";
print "<td>".htmspecialchars($val)."</td>";
}
print "</tr>";
}
print "</table>";
のような処理で一覧を表示させます
No.1
- 回答日時:
仕様がまったくわからないので、なんとなくこんな感じかと予想しつつ・・・
tbl_testのプライマリキーないしユニークなidを拾って
レコードを表示する際に
<a href="shousai.php?id=○○">詳細</a>
でリンクを表示し、shousai.php側でidを元に詳細データを
表示する仕組みをつくる
すいません
番号 int プライマリーキー
氏名 varchar
住所 varchar
登録画面のソース
<HTML>
<HEAD><TITLE>新規登録</TITLE></HEAD>
<BODY>
<BLOCKQUOTE>
<FORM ACTION = "insert.php" METHOD = "POST">
<BR><BR>登録画面<BR><BR>
番号 <INPUT TYPE="NAMBER" NAME = "ID"><BR><BR>
氏名 <INPUT TYPE="TEXT" NAME = "NAME"><BR><BR>
住所 <INPUT TYPE="TEXT" NAME = "ADDR"><BR><BR>
<A HREF="http://localhost/top.php">
<INPUT TYPE = "SUBMIT" VALUE = "登録する"></A>
<A HREF="http://localhost/top.php">一覧に戻る</A>
</BODY>
</BLOCKQUOTE>
</FORM>
</BODY>
</HTML>
お探しの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ランキング
-
php データ削除
-
SQL1回で、平均と合計を両方出...
-
Arrayってなんですか?
-
PDOでMySQL接続した際の文字化...
-
PHP+MySqlでの検索
-
phpでcsvをhtmlにしたい
-
phpで以下のようにHTMLで出力さ...
-
phpからdbへアクセスし、レコー...
-
PHPからMySQLへの検索
-
php テーブルを作れない
-
テーブルの最後のレコードしか...
-
MySQLにHTMLタグを挿入したい
-
集計表が作れない
-
GROUP_CONCATで条件指定
-
PHP の ファイルアップロード
-
PHP+MySQL で検索結果を横並び...
-
MySqlに、\\'の2つを含む文字を...
-
php、PDOでの接続とクエリの記...
-
PHP + MySQLを使用して詳細画面...
-
MySQLで0で検索できない
おすすめ情報