如何构造表以包含一个订单号的多个项目

时间:2012-02-18 16:11:42

标签: php mysql

我有一个cart_array来保存购物车中的商品,它包含item_id,尺寸和数量。目前我正在使用自动递增的订单ID将这些写入表交易,但是它为每个项目创建了一个新行,这意味着一个订单的订单ID可能是3个项目的1,2,3。我正在寻找一种订购方式。 129然后以某种方式将那些项目链接到该订单。这是我的php和sql语句

foreach ($_SESSION["cart_array"] as $each_item) {
    $item_id = $each_item["item_id"];
    $sql = mysql_query ("SELECT * FROM products WHERE id='$item_id' LIMIT 1");
    while ($row = mysql_fetch_array($sql)) {
        $price = $row["price"];
    }
    $sql = "INSERT INTO transactions (pid, item_id, quantity, price, size, date) VALUES ('$userID', '$each_item[item_id]', '$each_item[quantity]', '$price', '$each_item[size]', now())";
    mysql_query($sql);
}
?>

2 个答案:

答案 0 :(得分:4)

你应该创建两个表。

表1:包含订单的表格,其中包含orderId(autoincrement)

等唯一键

表2:包含与orderId

相关联的项目的表格

通过这种方式,您可以通过在表1中插入一行来创建新订单。 从刚刚创建的行中获取orderId,然后遍历cart_array并在第二个表中插入行,每个项目都有一行。将每个项目引用到orderId。

答案 1 :(得分:1)

在单独的表中记录分配(如果需要,请使用外键)。

新表存储对实际项目(其id)的引用以及对事务(其id)(和数量)的引用。