您好我正在尝试为项目创建购物网站。我在包含项目的数据库中有一个表。我已经设法从表中读取。除了每一行,我还添加了一个复选框。我希望用户选择一个或多个项目,然后按“提交”按钮。当他们这样做时,订单的细节应合并并添加到另一个表。我怎么能这样做?
以下是显示项目的代码。表中的每一行都包含一个复选框。还有一个提交按钮。
<!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 - shopping.php
$db = mysql_connect('localhost', '#####', '#####');
mysql_select_db('shopping', $db);
$query = 'SELECT * FROM Items';
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>
<td><input type='checkbox' name='buy' value='buy' /></td>
</tr>";
}
print "</table>";
} else {
print '<p style="color: blue">Error!</p>';
}
mysql_close($db); // Close the connection.
?>
</body>
</html>
它导航到的页面(buy.php)目前是空的,那就是我需要帮助。我希望将订单的详细信息输入下表:
Table name: order_details
fields: ID, Items, Total_Cost
我希望ID显然是一个随机数。我希望items列合并项目的ID。最后,我希望Total_cost列显示所有选定项目的总和。
答案 0 :(得分:0)
您的名称和值设置为“购买”的复选框是一个糟糕的开始。无法识别脚本中处理此表单的已检查项目。该名称应更改为name='buy[{$row['ID']}]'
,以便您可以检索所选项目的ID。您的表单应该包裹所有复选框(整个表格)。
您的order_details表是如何不这样做的完美示例。由于各种原因,多值字段是邪恶的。在典型的订单结构中,您可能拥有orders(id, user_id, created, status)
和order_items(id, order_id, item_id, quantity, unit_price)
。这是一个略显天真但可用的结构。总订单价值可以根据数量和unit_prices轻松计算。
您需要尝试解决方案,然后提出具体问题,而不是要求我们为您编写整个解决方案。在Google上快速搜索“php mysql购物车教程”会返回很多有关此主题的教程。