如何从mySQL表中选择行并合并在一起(PHP)

时间:2012-03-30 22:50:53

标签: php mysql sql

您好我正在尝试为项目创建购物网站。我在包含项目的数据库中有一个表。我已经设法从表中读取。除了每一行,我还添加了一个复选框。我希望用户选择一个或多个项目,然后按“提交”按钮。当他们这样做时,订单的细节应合并并添加到另一个表。我怎么能这样做?

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

    <!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列显示所有选定项目的总和。

1 个答案:

答案 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购物车教程”会返回很多有关此主题的教程。

相关问题