如何使用 php 金额更新购物车数量


How to update shopping cart quantity with amount in php?

下面是我不起作用的源代码?我想更新相应数量与该特定项目并计算总数。我被卡住了或编码错误。请谁能告诉我该怎么做?表示用户增加该商品的数量价格何时应增加。

         $sel_user = "select * from cart where ip_add = '$ip' ";
            $run_sel_user = mysqli_query($con,$sel_user);
            while($p_price = mysqli_fetch_array($run_sel_user))
            {
                $pro_id = $p_price['p_id'];
                $sel_pro_from_product = "select * from products where product_id = '$pro_id'";
                $run_pro_from_product = mysqli_query($con,$sel_pro_from_product);
                while($pro_price = mysqli_fetch_array($run_pro_from_product))
                {
                    $product_price = array($pro_price['product_price']);
                    $product_title = $pro_price['product_title'];
                    $product_image = $pro_price['product_img1'];
                    $product_single_price = $pro_price['product_price'];
                    $values = array_sum($product_price);
                    $total += $values ;
                    if(isset($_POST['update_cart']))
                    {
                        if(isset($_POST['qty']))
                        {
                            print_r($_POST['qty']);
                            foreach($_POST['qty'] as $qty_add)
                            {
                                $qty = $qty_add;
                                $update_qty = "update cart set qty='$qty' where p_id='$pro_id'";
                                $run_qty = mysqli_query($con,$update_qty);
                                $total=$total*$qty;
                            }
                        }
                        else
                        {
                        }
                    }
            ?>
            <tr align="center" >
                <td style="padding:5px; border:1px solid black;"><input type="checkbox" name="remove[]" value="<?php echo $pro_id;?>"/></td>
                <td style="padding:5px; border:1px solid black;"><?php echo $product_title;?><br>
                    <img src="admin_area/product_images/<?php echo $product_image; ?>" height="60" width="60"/>
                </td>
                <td style="padding:5px; border:1px solid black;"><input type="text" size="4" name="qty[]" 
                    value="<?php
                            $default_qty = 1;
                            if(!isset($_POST['qty']))
                            {
                                echo $default_qty;
                            }

                    ?>" style="text-align:center;"/></td>

                        <td style="padding:5px; border:1px solid black;"><?php echo $product_single_price." Rs ";?></td>
                    </tr>
                    <?php   
                }}
                    ?>

您将输入框的名称设置为 qty[] 数组,并且对购物车中的每个项目和数组中的每个项目进行循环 因此,如果购物车中有 20 件商品,则您当前正在发送 20x20 个查询,而 20 个查询中有 19 个包含错误的信息。相反,您可以使用 $pro_id 变量设置输入框的名称。

<input type="text" size="4" name="qty<?php echo($pro_id);?>"/>

这样,您的每个文本框都将有自己唯一的名称,该名称标识它是哪个产品。然后在上面的 while 循环中,您可以做这样的事情

if(isset($_POST['update_cart']))
{
    if(isset($_POST['qty' . $pro_id]))
    {
        $quantity = (int)$_POST['qty' . $pro_id];
        $run_qty = mysqli_query($con,"update cart set qty='$qty' where p_id='$pro_id'");
    }
}

但是,当然,现在的设置方式,无法知道购物车表中的哪些记录属于哪些用户。因此,如果没有更多更改,这将在现实世界的设置中不起作用(例如标识哪些记录属于哪个用户的字段)