【问题标题】:How to update shopping cart quantity with amount in php?如何用php中的金额更新购物车数量?
【发布时间】:2016-02-22 18:07:49
【问题描述】:

下面是我不工作的源代码?我想更新与该特定项目相关的数量并计算总数。我被卡住或编码错误。请问谁能告诉我下一步该怎么做?意味着当用户增加该项目的数量价格时应该增加..

         $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   
                }}

                    ?>

【问题讨论】:

  • 该代码毫无意义。你为什么要在$_POST['qty'] 中循环,然后用它来更新单个产品的购物车数量?您可以将购物车中的每件商品设置为 $_POST 中 LAST 显示的任何数量。
  • 请告诉我以后我该怎么办?

标签: php cart


【解决方案1】:

您正在将输入框的名称设置为 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'");
    }
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多