如何将表格结构为一个订单号有多个项目


how to structure tables to have multiple items for one order number

我有一个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);
}
?>

您应该创建两个表。

表1:包含订单的表,该表具有唯一的关键字,如orderId(自动递增)

表2:包含链接到orderId 的项目的表

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

将赋值记录在一个单独的表中(如果需要,请使用外键)。

新表存储对实际项目(其id)的引用和对交易(其id和数量)的引用。