我将篮子的数据存储在会话中。从卡中将第一个产品添加到购物车时,产品和数量已正确添加。添加下一个产品时,购物车中所有产品的产品数量都会发生变化,包括第一个产品。如何单独更改数量。
处理程序:
// получаем переменные из карточки товара (id и количество)
$item_id = $_POST['id'];
$qty = $_SESSION['cart'][$item_id]['qty'] + $_POST['qty'];
//данные для отображения в корзине
$sql = "SELECT * FROM products WHERE id='$item_id'";
if($result = $conn->query($sql)){ foreach($result as $row){
$product_name = $row["name"];
$product_price = $row["price"];
$product_price_sale = $row["saleprice"];
$sql = "SELECT * FROM images WHERE product_id='$item_id'";
if($result = $conn->query($sql)){ foreach($result as $row){ $image = $row["image"]; } } else { echo "Ошибка: " . $conn->error;}
} } else { echo "Ошибка: " . $conn->error;}
if ($product_price_sale == ""){
$finalprice = $product_price . ' р';
} else $finalprice = $product_price_sale . ' р';
//изменение данных сессии
$_SESSION['cart'][$item_id] = ['id' => $item_id, 'image' => $image, 'name' => $product_name, 'qty' => $qty , 'price' => $finalprice];
include "../blocks/cart.php";
?>