Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 如何处理购物车表中的更新查询_Php_Mysql_Mysqli_Sql Update - Fatal编程技术网

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

Php 如何处理购物车表中的更新查询,php,mysql,mysqli,sql-update,Php,Mysql,Mysqli,Sql Update,我正在与PHP、MySQL合作开发我的在线商店。基本上到现在为止,我已经做了所有的事情,现在我正在工作的购物车更新过程。这意味着用户可以更新他们添加到购物车中的每个产品的数量 这就是cart表的外观: 为了从数据库中的cart表中检索产品,我执行了以下操作: $cart_id = $_GET['cart_id']; $get_add = "SELECT * FROM cart WHERE cart_id = '$cart_id'"; $run_add = mysqli_query($con,$

我正在与PHP、MySQL合作开发我的在线商店。基本上到现在为止,我已经做了所有的事情,现在我正在工作的购物车更新过程。这意味着用户可以更新他们添加到购物车中的每个产品的数量

这就是cart表的外观:

为了从数据库中的
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;
}
<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>
为了在db中显示
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;
}
<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>

foreach($cart\u项目作为$cart){
$pro_id=$cart['pro_id'];
回声“
“$cart['pro_supplier']

1. 2. 3. 4. 5. }
现在,为了更新每个项目的数量,我添加了以下操作:

<?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>

在更新查询中添加更新的\u at=now()。更新
cart
SET
qty
='$quantities',更新的\u at=now(),其中
proid
='$proid'