php - 如何处理购物车表中的更新查询

标签 php mysql mysqli sql-update

我正在使用 PHP、MySQL 来开发我的在线商店。基本上到目前为止我已经完成了所有工作,现在我正在处理购物车更新过程。这意味着用户可以更新添加到购物车的每种产品的数量。

这就是购物车表的样子:

print screen 1

为了从数据库中的cart表中检索产品,我这样做了:

$cart_id = $_GET['cart_id'];
$get_add = "SELECT * FROM cart WHERE cart_id = '$cart_id'";
$run_add = mysqli_query($con,$get_add);
$cart_items = [];
$total_price_to_pay = 0;
while ($row_results = mysqli_fetch_array($run_add)){
    $item = array(
        'table_id' => $row_results['table_id'],
        'cart_id' => $row_results['cart_id'],
        'pro_id' => $row_results['product_id'],
        'pro_title' => $row_results['product_title'],
        'pro_price' => $row_results['product_price'],
        'pro_img' => $row_results['product_image'],
        'pro_supplier' => $row_results['product_supplier'],
        'qty' => $row_results['qty'],
        'cart_ip' => $row_results['cart_ip'],
        'pro_total' => $row_results['qty']*$row_results['product_price'],
    );
    $total_price_to_pay +=  $row_results['qty']*$row_results['product_price'];
    $cart_items[] = $item;
}

为了在数据库中显示 cart 表的结果,我这样做了:

<form method='POST' action=''>
foreach ($cart_items as $cart) {
    $pro_id = $cart['pro_id'];
    echo "
    <input type='hidden' name='pro_id' value='$pro_id'>
    <h4><a href=''>".$cart['pro_title']."</a></h4>
    <p>".$cart['pro_supplier']."</p>
    <select name='quantites'>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
        <option value='4'>4</option>
        <option value='5'>5</option>
    </select>
}
    <input name='update' type='submit' value='UPDATE'></input>
</form>

现在为了更新每件商品的数量,我将其添加为操作:

<?php
if(isset($_POST['update'])){
        $proid = $_POST['pro_id'];
        $quantities = $_POST['quantities'];
        $update_qty = "
            UPDATE `cart` SET `qty` = '$quantities' WHERE `product_id` = '$proid'
        ";
        $run_qty = mysqli_query($con,$update_qty) or die(mysqli_error($con));
        if($run_qty){
            echo "<META HTTP-EQUIV='Refresh' Content='0; URL=cart.php?cart_id=$cart_id'>";
        }else{
            error_reporting(E_ALL);
            die(mysqli_error($con));
        }
    }
?>

但现在的问题是它根本不更新表!

没有错误,也没有结果...

那么我怎样才能在这个表中添加这个更新按钮才能工作。因此,用户可以更改每种产品的数量。

如果您知道如何解决这个问题,请告诉我..谢谢!

最佳答案

使用以下代码更新您的 html 表单并立即尝试

<form method='POST' action=''>
<?php foreach ($cart_items as $cart) {
    echo "<input type='hidden' name='pro_id' value='".$cart['pro_id']."'>
    <h4><a href=''>".$cart['pro_title']."</a></h4>
    <p>".$cart['pro_supplier']."</p>
    <select name='quantites'>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
        <option value='4'>4</option>
        <option value='5'>5</option>
    </select>";
} ?>
    <input name='update' type='submit' value='UPDATE'></input>
</form>

关于php - 如何处理购物车表中的更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074085/

相关文章:

javascript - 将多个输入价格合并为一个 TOTAL

php - Symfonian 取消嵌入表单的方式

mysql - 与两个实体共享地址表

php - 当数据库连接丢失时,如何在 PHP 中重新连接并重试 MySQL 查询?

php - 如何合并关联数组的特定部分?

php - 如何使用xPath php获取值(value)

php - 选择某些值为 true 的帖子 ID,并使用其中的值对它们进行排序

javascript - 具有 1,000 行和 5,000 个输入的 Angular 表呈现缓慢

mysql - 在 mysql 或 Mariadb 中转换查询

php - 在 php 中放置一个表格,第一行