更新表sql

时间:2018-05-18 21:58:04

标签: php mysql sql

我尝试了很多东西和很多想法,但我无法使这段代码运行良好。

我开始为购物车构建页面。

In these images i want update quantity each product separately in database using sql

当我从网站更新数量产品时,我想通过p_id更新产品。不是所有的产品。

让我们说我的购物车中有两种产品:

in this images i show u my database

到目前为止,这是我的工作:

<form action="" method="post">
    <table border="0" cellspacing="0" width="100%">
        <tr colspan="5" class="title_incart">
            <th colspan="2">product</th>
            <th>qty</th>
            <th>price</th>
            <th>x</th>
        </tr>

<?php
    global $connect;
    $ip = getIp();
    $total = 0;
    $t_price = "SELECT * FROM cart WHERE ip_add = '$ip'";
    $run_price = mysqli_query($connect, $t_price);
    while($row_t_price = mysqli_fetch_array($run_price)){
        $pro_id_t = $row_t_price['p_id'];
        $price_pro = "SELECT * FROM products WHERE p_id = '$pro_id_t'";
        $run_price_pro = mysqli_query($connect, $price_pro);
        while($row_price_pro = mysqli_fetch_array($run_price_pro)){
            $pro_price = array($row_price_pro['p_price']);
            $pro_title = $row_price_pro['p_title'];
            $pro_img = $row_price_pro['p_img'];
            $pro_price_single = $row_price_pro['p_price'];
            $values = array_sum($pro_price);
            $total +=$values;
?>
    <tr colspan="5" class="info_incart">
        <th><img class="res_img_incart" src="files/images/images_product/<?php echo $pro_img; ?>"/></th>
        <th><?php echo $pro_title; ?></th>
        <th><input type="text" name="abcd" size="1" value="<?php echo $_COOKIE['abcd']; ?>"/></th>
        <?php
          if(isset($_POST['update_cart'])){
            $abcd = $_POST['abcd'];
            $update_qty = "UPDATE cart SET abcd = '$abcd' WHERE p_id = '$pro_id_t'";
            $run_u_qty = mysqli_query($connect, $update_qty);
            $_COOKIE['abcd'] = $abcd;
            $total = $total*$abcd;
          }
        ?>
        <th><?php echo $pro_price_single; ?> $</th>
        <th><input type="checkbox" name="remove[]" value="<?php echo $pro_id_t; ?>"/></th>
    </tr>
<?php } } ?>
    <tr colspan="5" class="total_price_incart">
        <th>Total price</th>
        <th><?php echo $total; ?> $</th>
    </tr>
    <tr class="checkout_incart">
      <th colspan="2">
        <input type="submit" name="update_cart" value="update cart"/>
      </th>
    </tr>
</table>
  </form>

我只是想要这方面的帮助

<th><input type="text" name="abcd" size="1" value="<?php echo $_COOKIE['abcd']; ?>"/></th>
        <?php
          if(isset($_POST['update_cart'])){
            $abcd = $_POST['abcd'];
            $update_qty = "UPDATE cart SET abcd = '$abcd' WHERE p_id = '$pro_id_t'";
            $run_u_qty = mysqli_query($connect, $update_qty);
            $_COOKIE['abcd'] = $abcd;
            $total = $total*$abcd;
          }
        ?>

         <input type="submit" name="update_cart" value="update cart"/>

请帮帮我,我希望这可以用于我的学校作业,如果有什么不妥,我会对我的英语感到抱歉。

我的朋友经过大量尝试后找到了解决方案

我用过

$query = "UPDATE cart SET abcd= 'abcd + 1' WHERE p_id = '$pro_id'";

并且工作正常,当我将产品添加到我的购物车时,它会在旧值上添加+1

1 个答案:

答案 0 :(得分:0)

您循环浏览商品,并检查$_POST['update_cart']是否设置为更新商品的数量。但是如果为一次迭代设置了$_POST['update_cart'],则会为所有迭代设置abcd。因此,您将更新循环中每个项目的数量。

您可以做的是为每个输入字段指定一个唯一的名称。不只是将它们全部命名为<tr colspan="5" class="info_incart"> <th><img class="res_img_incart" src="files/images/images_product/<?php echo $pro_img; ?>"/></th> <th><?php echo $pro_title; ?></th> <th><input type="text" name="abcd<?php echo $pro_id_t ?>" size="1" value="<?php echo $_COOKIE['abcd' + $pro_id_t]; ?>"/></th> <?php if(isset($_POST['update_cart'])){ $abcd = $_POST['abcd' + $pro_id_t]; $update_qty = "UPDATE cart SET abcd = '$abcd' WHERE p_id = '$pro_id_t'"; $run_u_qty = mysqli_query($connect, $update_qty); $_COOKIE['abcd' + $pro_id_t] = $abcd; $total = $total*$abcd; } ?> <th><?php echo $pro_price_single; ?> $</th> <th><input type="checkbox" name="remove[]" value="<?php echo $pro_id_t; ?>"/></th> </tr> 。这样,您就可以识别每个项目的数量。

这样的事情:

.FullSeriesCollection