我正在为一个项目制作购物车脚本。购物车已经创建,但现在我正在查询购物车中的产品插入订单表的位置。但是当我这样做的时候,每个产品都有自己的order_id
,有没有可能给购物车中的每个产品相同的order_id
?
将产品插入订单表的查询:
function cart() {
global $query;
global $query2;
$total = 0;
$total2 = 0;
foreach($_SESSION as $name => $value) {
if ($value>0) {
if (substr($name, 0, 5)=='cart_') {
$id = substr($name, 5, (strlen($name)-5));
$get = mysql_query('SELECT id, partnr, specs, price FROM parts WHERE id='.mysql_real_escape_string($id));
while ($get_row = mysql_fetch_assoc($get)) {
$sub = $get_row['price']*$value;
echo $get_row['partnr'].' x '.$value.' @ €'.number_format($get_row['price'], 2). ' = €'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?toevoegen2='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'">[Delete]</a> <br/>';
if(isset($_POST['behandelen'])){
$partnr=$get_row['partnr'];
$price=$get_row['price'];
$datum=date("Y-m-d H:i:s");
$gebruikersnaam = $_REQUEST['gebruikersnaam'];
$query = "UPDATE parts set hoeveelheid = hoeveelheid - '$value' WHERE id = '$id'";
$query2= "INSERT INTO orders(partnr, price, hoeveelheid, betaaldatum)VALUES('$partnr', '$price', '$value', '$datum')";
}
mysql_query($query);
mysql_query($query2);
}
}
$total += $sub; //totaalprijs exclusief btw
$total2 += $sub*1.21; //berekening inclusief btw van 21%
$btw = $total2-$total;
}
}
if ($total==0) {
echo "Uw winkelwagen is leeg.";
}
else {
global $lang;
echo $lang['CART_SUBTOTAL'], '€'.number_format($total, 2); echo "<br/>";
echo $lang['CART_BTW'], '€'.number_format($btw, 2); echo "<br/>";
echo $lang['CART_TOTAL'], ' €'.number_format($total2, 2); //prijs inclusief btw wordt weergegeven op de site
}
}
SQL查询如下:query2="INSERT INTO订单(partnr, price, hoeveelheid, betaaldata)VALUES('$partnr','$price','$value','$data')";
我希望有人能给我一些建议,
提前感谢!
您应该只在orders表中插入一个新行。这将是您的订单号。
创建另一个名为“orders_products”的表。在此表中插入每个产品,例如:
orders_products_id order_id product_id quantity
1 5 8 1
2 5 7 2
3 5 12 1
如你所见,order_id是5,但是每行都有不同的产品。
为什么要将相同的产品id添加到产品编号中?
您可以做的是-为每个独特的产品添加一个独特的通用产品ID,例如-规格为y、价格为z的x品牌牙膏应该具有相同的通用产品ID。然后您可以让用户将其添加到购物车中。
购物车将有另一个唯一的ID,存储在数据库中的所有产品将具有相同的购物车ID。因此,您订购或存储在购物车中的所有产品将具有相同的购物车ID,但具有不同的产品ID,以便您可以获取有关该产品的所有信息。
你可以就这么做-
(partnr, price, hoeveelheid, betaaldatum, productID, cartID)VALUES
('$partnr', '$price', '$value', '$datum', someID, anotherID)";
还应该有另一个表包含所有购物车信息,另一个表包含产品信息
您的数据库设置完全错误,因此您有一个订单,订单中有项目。我将创建一个新表来包含有关订单的详细信息,当前表实际上应该重命名为order\u items。
在订单表中,您可以添加有关客户/交货详细信息的详细信息?然后,订单和订单项之间会有一个外键。
ie.
Orders (table)
order_id - primary key - auto increment.
other_fields....................
Order_items (table 2)
order_item_id - primary key - auto inc
order_id - foreign key
details about the order item - e.g quantity
这应该会给你指明正确的方向。
问题内容: 我想创建一个像堆栈溢出这样的问答应用程序。 我不知道如何在MySQL表列中存储多个答案。 我想知道如何在sql表的同一行中存储问题和多个答案。 问题答案: 创建两个表并使用外键关系将它们连接是最好的解决方案之一。因为将问题和答案保存在同一表格中可能不会使您对同一问题有多个答案。如果您希望一个问题有多个答案,那么数据库的冗余肯定会增加。因此,请尝试正确使用DB- Relationship
问题背景 MySQL中有三个表,分别是“题库表”、“错题表”和“用户表”,现在需要实现不同用户存储不同的错题,不同用户存储的错题可能会重复,同一用户错题不会重复 请问MySQL中如何想在某一列中存储多值类数据,如多个用户id,应该如何设置表结构及类型?
问题内容: 我想使用两个Git存储库构建一个项目。其中一个包含源代码,而另一个包含构建和部署脚本。 我的问题是我需要一个用于构建和部署项目不同部分(大型项目,多个存储库,相同的构建和部署脚本)的存储库,但是Jenkins似乎无法处理此问题(或者我不知道)不知道/找不到方法)。 问题答案: 更新 现在不建议使用多个SCM插件,因此用户应该迁移到Pipeline插件。 旧答案 是的,詹金斯可以处理。只
但是,共享上下文还有其他很好的理由,其中之一(IMHO)是上下文必须跟踪实体的状态,如果您要获得一个实体,处理该上下文,对该实体进行一些修改,然后附加到一个新的上下文,这个新的上下文必须访问数据库,以便它能够计算出该实体的状态。同样,如果您正在处理实体(发票和它们的所有InvoiceItems)的图,那么新的上下文必须获取图中的所有实体来确定它们的状态。 但现在我用这种建筑撞上了单行道! 如果我必
从存储这些对象的性能和内存角度来看,哪种方法更好?单独的哈希映射或与所有这些哈希映射的列表。 我可以认为,将其存储为单独的哈希映射的一个优点是,我们不需要迭代列表来查找值是否存在。