Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One solution could be to use an array to store the quantities for each product in the cart, rather than assigning the last variable to all products. This could be achieved by modifying the code as follows:

<?php
// Get cart items from session
$cart = $_SESSION['cart'];

// If item is already in cart, update its quantity
if (isset($cart[$product_id])) {
  $cart[$product_id]['quantity'] += $quantity;
} else {
  // If item is not in cart, add it with quantity
  $cart[$product_id] = array(
    'quantity' => $quantity,
    'price' => $price
  );
}

// Update session with new cart
$_SESSION['cart'] = $cart;
?>

In this code, the $cart array stores the quantities and prices for each product in the cart. If the product is already in the cart, its quantity is updated by adding the new quantity to the existing one. If the product is not in the cart, it is added with the new quantity and price. Finally, the updated cart is stored back in the session with $_SESSION['cart'] = $cart;.

With this approach, each product in the cart will have its own quantity and price stored in the $cart array, rather than having the last variable assigned to all products.