我正在创建一个有购物车的网站。我不需要任何特殊功能,因此我自己创建购物车而不是集成任何现成的购物车。我的产品在数据库中没有预定义的价格。价格是根据用户在产品页面上输入的值动态生成的。因此,用户选择一些规格,输入数量,我得到以下值:
物品编号
数量
总价
我需要将这些值存储在$ _SESSION变量中,然后在需要时将其循环以获取结果并将其打印在购物车中。问题是有很多产品,我需要为所选产品特别存储所有这些值(数量,总价)。也就是说,如何在$ _SESSION变量中存储项目ID,数量和总价格并将这些值相互关联?
感谢您的帮助。
编辑:我的代码实现迈克尔的建议:$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);
答案 0 :(得分:11)
将项目ID用作数组键,其中包含其他项目的数组:
// 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...
并将其视为:
// For item 12345's quantity
echo $_SESSION['items'][12345]['Quantity'];
// Add 1 to quantity for item 54321
$_SESSION['items'][54321]['Quantity']++;