2012-03-30 103 views
-2

嗨我正在尝试为项目创建购物网站。我有一个包含项目的数据库中的表。我设法从表中读取。除了每行之外,我还添加了一个复选框。我希望用户选择一个或多个项目并按提交按钮。当他们这样做时,订单的细节应该合并并添加到另一个表中。我怎样才能做到这一点?如何从mySQL表中选择行并合并(PHP)

以下是显示项目的代码。表中的每一行都包含一个复选框。还有一个提交按钮。

<!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显然是一个随机数。我希望项目列合并项目的ID。最后,我希望Total_cost列显示所有选定项目的总和。

回答

0

您的名称和值设置为“购买”的复选框是一个糟糕的开始。无法识别处理此表单的脚本中的选中项目。该名称应更改为name='buy[{$row['ID']}]',以便您可以检索所选项目的ID。你的表单应该包裹所有的复选框(整个表格)。

您的order_details表是一个完美的例子,说明如何不做。多值领域由于种种原因是邪恶的。在典型的订单结构中,您可能有orders(id, user_id, created, status)order_items(id, order_id, item_id, quantity, unit_price)。这是一个天真但可用的结构。总订单价值可以根据数量和单位价格实时计算。

您需要尝试解决方案,然后询问具体问题,而不是要求我们为您编写整个解决方案。在Google上快速搜索“php mysql购物车教程”会返回大量关于此主题的教程。