
いま下記のソースで一覧画面が表示されます!
氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません
参考までに教えてください
<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で質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP php ログイン 1 2022/11/01 00:24
- PHP php エラー 2 2022/10/23 16:43
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlがインストールされている...
-
mysqlがインストールされている...
-
SQLで日付別のIDを生成するには
-
複数DBテーブルからのデータ取得
-
連続番号機能を使ってレコード...
-
MySQLのテーブル作成でハイフン...
-
データベースの検索で、この場...
-
utf8bomとutf8mb4の違いがいま...
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
エラー 1068 (42000): 複数の主...
-
参考書に従って入力したつもり...
-
SQLでカラムを追加し、条件に合...
-
order byの役割を知りたいです。
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php テーブルを作れない
-
テーブルの最後のレコードしか...
-
MySQL+PHPでリストから詳細表示
-
SQL1回で、平均と合計を両方出...
-
mysql - 出力を縦表示
-
MySQLが使えますレンタルサーバ...
-
PHP + MySQLを使用して詳細画面...
-
MySQLにHTMLタグを挿入したい
-
mysqlより取り出した値が、noti...
-
MySQLで0で検索できない
-
MySQLでデータベースにデータin...
-
実行時エラー3131 FROM 句の構...
-
テキストボックスに入れた内容...
-
csvをDBへ読み込んだら、NULLが...
-
VBAをつかってクエリの情報を抽...
-
<VB.NET>INSERT文でDBにデータ...
-
JAVA SQLServerException 列名 ...
-
insert1つの処理でもトランザ...
-
【初歩】配列の格納データ数だ...
-
アラートでyes noを作りたいです。
おすすめ情報