こんにちは私は私のテーブルのすべての内容を表示するページを持っています。テーブルの各行に沿って、私はチェックボックスを含む列も持っています。ユーザーがチェックボックスにチェックを入れ、送信ボタンを押して1つまたは複数の行を選択すると、次のページ(buy.php)の表にその行だけが表示されます。私はそれが基本的に選択された行ごとの選択文であることを知っています。しかし、私はこれに近づく方法を知らない。誰でも助けることができますか?おかげチェックボックス(PHP)を使用してmysqlテーブルから行を選択する方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Shopping</title>
</head>
<body>
<form action='buy.php' method='post'>
<input type='submit' value='Submit' />
</form>
<h1>Buy</h1>
<?php // Script 12.7 - sopping.php
$db = mysql_connect('localhost', '#####', '#####');
mysql_select_db('shopping', $db);
$query = 'SELECT * FROM Items';
if ($r = mysql_query($query, $db)) {
print "<form>
<table>";
while ($row = mysql_fetch_array($r)) {
print
"<tr>
<td>{$row['ID']}</td>
<td>{$row['Name']}</td>
<td>{$row['Cost']}</td>
<td><input type='checkbox' name='buy[{$row['ID']}] value='buy' /></td>
</tr>";
}
print "</table>
</form>";
} else {
print '<p style="color: blue">Error!</p>';
}
mysql_close($db); // Close the connection.
?>
</body>
</html>
編集:私は以下の提案を試してみましたが、私はテーブルを取得できませんでした。ページのタイトルだけです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Confirmation</title>
</head>
<body>
<h1>Order Details</h1>
<?php // Script 12.7 - buy.php
$db = mysql_connect('localhost', '#####', '#####');
mysql_select_db('shopping', $db);
foreach($_POST['buy'] as $item) {
$query = 'SELECT * FROM Items WHERE ID = $item';
if ($r = mysql_query($query, $db)) {
print "<table>";
while ($row = mysql_fetch_array($r)) {
print
"<tr>
<td>{$row['ID']}</td>
<td>{$row['Name']}</td>
<td>{$row['Cost']}</td>
</tr>";
}
print "</table>";
} else {
print '<p style="color: blue">Error!</p>';
}
}
mysql_close($db);
?>
</body>
</html>
はまた、いくつかのことに注意してくださいチェックは、ポストからの値に行われ、SQLインジェクションから保護する必要があります:) –
私は新しいページのコーディングでステップ2の部分を追加しますか?また、次のステートメントは正しいです:SELECT * FROM Items WHERE 'ID' = $ item – Matt9Atkins
ステップ2は新しいページ/プロセスの注文ページにあります。そのSQL文は正しくありません。 'ID'は '\' ID \ ''でなければなりません。列名は\ values used(一重引用符)を使用します – David