I'm creating a site which has a shopping cart. I do not need any special functionality so I'm creating the cart on my own rather than integrating any ready one. My products do not have a predefined price in the database. The price is being generated dynamically based on the values entered by a user on the product page. So, the user chooses some specifications, enters the quantity and I get the following values:
Item ID
Quantity
Total price
I need to store those values in the $_SESSION variable and then loop over it when needed to get the results and print them in the shopping cart. The problem is that there are a lot of products and I need to store all those values (Quantity, Total Price) distinctively for the chosen product. That said, how do I store Item ID, Quantity and Total price in the $_SESSION variable and associate those values with each other?
Thanks for helping.
EDIT: My code implementing Michael's suggestions:
$itemid = $db->escape($_POST['productid']);
$itemquantity = $db->escape($_POST['itemquantity']);
$totalprice = $db->escape($_POST['totalprice']);
$_SESSION['items'] = array();
$_SESSION['items'][$itemid] = array('Quantity' => $itemquantity, 'Total' => $totalprice);
var_dump($_SESSION);
Use the item ID as an array key, which holds an array of the other items:
// Initialize the session
session_start();
// Parent array of all items, initialized if not already...
if (!isset($_SESSION['items']) {
$_SESSION['items'] = array();
}
// Add items based on item ID
$_SESSION['items'][$itemID] = array('Quantity' => $quantity, 'Total' => $total);
// Another item...
$_SESSION['items'][$another_itemID] = array('Quantity' => $another_quantity, 'Total' => $another_total);
// etc...
And access them as:
// For item 12345's quantity
echo $_SESSION['items'][12345]['Quantity'];
// Add 1 to quantity for item 54321
$_SESSION['items'][54321]['Quantity']++;