Я новичок в кодировании и пытаюсь обновить количество в моей корзине, но оно принимается только для одного продукта.php mysql корзина ошибка обновления количества
Если я добавлю несколько экземпляров, я могу обновить только последний продукт, который также установит все остальные продукты в том же количестве.
Мне нужна помощь, разделяющая количества.
Вот мой код:
<form action="" method="post" enctype="multipart/form-data">
<table align="center" width="700" >
<tr align="center">
<td colspan="5"><h2>SHOPPING CART</h2></td>
</tr>
<tr align="center">
<th>Remove</th>
<th>Product (s)</th>
<th>Quantity</th>
<th> Price</th>
<th> Total Price</th>
</tr>
<?php
global $con;
$total = 0;
$ip = getIp();
$sel_price = "select * from cart where ip_add='$ip'";
$run_price = mysqli_query($con,$sel_price);
while($p_price = mysqli_fetch_array($run_price)){
$pro_id = $p_price['p_id'];
$pro_price = "select * from products where product_id = '$pro_id'";
$run_pro_price = mysqli_query($con, $pro_price);
while($pp_price = mysqli_fetch_array($run_pro_price)){
$product_price = array($pp_price['product_price']);
$product_id = $pp_price['product_id'];
$product_title = $pp_price['product_title'];
$product_image = $pp_price['product_image'];
$single_price = $pp_price['product_price'];
$values = array_sum($product_price);
$total += $values;
?>
<tr align = "center">
<td><input type="checkbox" name="remove[]" value=" <?php global $con; echo $pro_id; ?>"/></td>
<td><span style="color: white;"><?php echo $product_title; ?></span>
<br>
<img src="admin_area/product_images/<?php echo $product_image; ?>" width="100px" height="100px"></td>
<td><input type="number" size="4" name="qty" /></td>
<?php
global $con;
global $Stotal;
$Stotal = $single_price;
if(isset($_POST['update_quantity'])){
$qty = $_POST['qty'];
$update_qty = "update cart set qty='$qty' ";
$run_qty = mysqli_query($con, $update_qty);
$Stotal = $single_price * $qty;
}
?>
<td><?php echo "KSh. " . $single_price; ?></td>
<td><?php echo "KSh. " . $Stotal; ?></td>
</tr>
<?php }} ?>
<tr align="right">
<td colspan="5"><b>Total:</b> <?php echo "KSh. " . $total; ?></td>
</tr>
<tr align="center">
<td><input type="submit" name="update_cart" value="Update Cart" /></td>
<td><input type="submit" name="continue" value="Continue Shopping" /></td>
<td><input type="submit" name="update_quantity" value="Update Quantity" /></td>
<td><button><a href="checkout.php" style="text-decoration: none; color: black;"> Checkout </a></button></td>
</tr>
</table>
</form>
<?php
global $con;
$ip = getIp();
if(isset($_POST['update_cart'])){
foreach($_POST['remove'] as $remove_id){
$delete_pro = "delete from cart where p_id = '$remove_id' and ip_add='$ip'";
$run_delete = mysqli_query($con, $delete_pro);
if($run_delete){
echo "<script>window.open('cart.php','_self')</script>";
}
}
}
if(isset($_POST['continue'])){
echo "<script>window.open('index.php','_self')</script>";
}
?>
** ПРЕДУПРЕЖДЕНИЕ ** При использовании 'mysqli' вы должны использовать параметризованные запросы и [' bind_param'] (http://php.net/ manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ используйте ** интерполирование строк или конкатенацию, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/). ** НИКОГДА ** не вводите данные '$ _POST' непосредственно в запрос. – tadman
Какой продукт вы называете? Каково содержание «корзины»? '' '$ update_qty =" update cart set qty = '$ qty' ";' '' Разве вы не хотите называть его на продукт, который находится внутри 'cart'? – paskl
стол для корзины имеет столбец «p_id», который получает product_id из таблицы продуктов, во-вторых, «ip_add», который получает ip-адрес, и, наконец, «qty», то есть количество –