我正在创建一个有购物车的网站。我不需要任何特殊功能,因此我将自己创建购物车,而不是集成任何现成的购物车。我的产品在数据库中没有预定义的价格。价格是根据用户在产品页面上输入的值动态生成的。因此,用户选择一些规范,输入数量,然后得到以下值:
物品ID
数量
总价
我需要将这些值存储在$ _SESSION变量中,然后在需要时在其上循环以获取结果并将其打印在购物车中。问题是有很多产品,我需要为所选产品专门存储所有这些值(数量,总价)。也就是说,如何将商品ID,数量和总价存储在$ _SESSION变量中,并将这些值彼此关联?
感谢您的帮助。
编辑:我的代码实现迈克尔的建议:
$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);
最佳答案
使用项目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']++;
关于php - 使用PHP在$ _SESSION变量中存储多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8964480/