Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一个id中存储多个值_Php_Mysql_Cart - Fatal编程技术网

Php 在一个id中存储多个值

Php 在一个id中存储多个值,php,mysql,cart,Php,Mysql,Cart,我正在为一个项目制作一个购物车脚本。购物车已经创建,但现在我正在查询购物车中的产品插入订单表的位置。但是,当我这样做时,每个产品都会获得自己的order\u id,是否可以为购物车中的每个产品提供相同的order\u id 将产品插入订单表的查询: function cart() { global $query; global $query2; $total = 0; $total2 = 0; foreach($_SESSION as $name => $value) { if (

我正在为一个项目制作一个购物车脚本。购物车已经创建,但现在我正在查询购物车中的产品插入订单表的位置。但是,当我这样做时,每个产品都会获得自己的
order\u id
,是否可以为购物车中的每个产品提供相同的
order\u 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.' @ &euro;'.number_format($get_row['price'], 2). ' = &euro;'.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'], '&euro;'.number_format($total, 2); echo "<br/>";
    echo $lang['CART_BTW'], '&euro;'.number_format($btw, 2); echo "<br/>";
    echo $lang['CART_TOTAL'], ' &euro;'.number_format($total2, 2); //prijs inclusief btw wordt weergegeven op de site
}


}
功能购物车(){
全局$查询;
全球2美元;
$total=0;
$total2=0;
foreach($\会话为$name=>$value){
如果($value>0){
如果(substr($name,0,5)='cart_u2;'){
$id=substr($name,5,(strlen($name)-5));
$get=mysql\u query('SELECT id,partnr,specs,price FROM parts WHERE id='。mysql\u real\u escape\u string($id));
而($get\u row=mysql\u fetch\u assoc($get)){
$sub=$get_行['price']*$value;
echo$get_row['partnr'].'x'.$value.@&euro;'.number_格式($get_row['price'],2)。'=&euro;'.number_格式($sub,2)。
; 如果(isset($_POST['behandelen'])){ $partnr=$get_行['partnr']; $price=$get_行['price']; $datum=日期(“Y-m-d H:i:s”); $gebruikersnaam=$_请求['gebruikersnaam']; $query=“更新零件集hoeveelheid=hoeveelheid-'$value',其中id='$id'; $query2=“在订单中插入(零件编号、价格、hoeveelheid、betaaldatum)值(“$partnr”、“$price”、“$value”、“$DATAM”)”; } mysql\u查询($query); mysql_查询($query2); } } $totaalprijs exclusief btw $total2+=$sub*1.21;//berekening包括btw van 21% $btw=$total2-$total; } } 如果($total==0){ 回声“Uw winkelwagen是韭菜。”; } 否则{ 全球$朗; echo$lang['CART\u SUBTOTAL'],'&euro;'。数字格式($total,2);echo“
”; echo$lang['CART_BTW'],'&euro;'。数字格式($BTW,2);echo“
”; echo$lang['CART_TOTAL'],'&euro;'。数字格式($total2,2);//prijs inclusief btw wordt weergegeven op de site } }
sql查询如下所示:
query2=“插入订单(partnr、price、hoeveelheid、betaaldatum)值(“$partnr”、“$price”、“$value”、“$datum”)”

我希望有人能给我一些建议


提前谢谢

您的数据库设置完全错误,因此您有订单,订单中有项目。 我将创建一个新表来包含有关订单的详细信息,当前表实际上应该重命名为order\u items

在订单表中,您可以添加有关客户/交货详细信息的详细信息? 然后,订单和订单项之间会有一个外键


这将为您指明正确的方向。

为什么要将相同的产品id添加到产品的数量中

您可以做的是-为每个独特的产品添加一个独特的通用产品ID,例如-规格为y、价格为z的x品牌牙膏应该具有相同的通用产品ID。然后您可以让用户将其添加到购物车中

购物车将具有另一个唯一ID,并且数据库中存储的所有产品都将具有相同的购物车ID。因此,您在购物车中订购或存储的所有产品都将具有相同的购物车ID,但具有不同的产品ID,以便您可以获取有关该产品的所有信息

你可以这么做-

(partnr, price, hoeveelheid, betaaldatum, productID, cartID)VALUES   
('$partnr', '$price', '$value', '$datum', someID, anotherID)";

还应该有另一个包含所有购物车信息的表和另一个用于产品信息的表

您应该只在orders表中插入一个新行。这将是您的订单号

创建另一个名为“orders\u products”的表。在此表中插入每个产品,例如:

orders_products_id order_id  product_id  quantity
1                  5         8           1
2                  5         7           2
3                  5         12          1

如您所见,订单id为5,但每行都有不同的产品。

我建议您使用订单id、产品id、数量、价格等属性在订单和产品表之间创建一个桥接名称“订单项目”。

谢谢您的回答Richard,我将创建一个新表并编辑现有表。嘿,要在新表中插入项目,我应该进行哪个查询?它将是mysql_查询(“插入订单产品(订单产品id、订单id、产品id、数量)值(“”,$order_id,“..$get_row['id']”,1)”);但请记住,您需要首先定义一个新订单。因此,在循环产品之前,在“订单”中插入新行。然后写:$order_id=mysql_insert_id();
orders_products_id order_id  product_id  quantity
1                  5         8           1
2                  5         7           2
3                  5         12          1