我正在用PHP写一个脚本,这与购物车非常相似。我想要做的是当用户添加某个产品时,我需要将productid添加到会话变量中,而不存储在数据库中。因此,每次用户添加产品时,productid都需要存储在会话变量中。
当用户结账时,我需要检索所有产品并显示?
有人可以解释一下如何做到这一点吗?因为1个产品很好,但不知道如何存储和检索多个值。任何帮助将不胜感激
答案 0 :(得分:13)
$_SESSION['cart'] = array();
$_SESSION['cart'][] = $apples;
$_SESSION['cart'][] = $oranges;
$_SESSION['cart'][] = $pears;
注意:将$apples
,$oranges
和$pears
替换为您的产品ID。
您可以像在PHP中的任何其他数组一样访问数组,例如到count项:
echo count($_SESSION['cart']);
对项目和iterate:
foreach($_SESSION['cart'] as $item)
{
echo $item;
}
您还可以将Session包装到一个对象中,并通过方法界面提供对购物车的访问权限,但我留给其他人解释。
答案 1 :(得分:3)
每个会话都是一个关联数组。您可以在其中存储其他数组,例如
$_SESSION['products']=array();
$_SESSION['products'][]='123123'
$_SESSION['products'][]='cow_34526'
然后你可以像使用任何其他数组一样使用它,即
foreach($_SESSION['products'] as $item){
//display or process as you wish
}
答案 2 :(得分:3)
将以下内容放在名为index.php
的文件中并进行测试:
<?php
session_start();
if(isset($_POST['product'])) {
$products = isset($_SESSION['products']) ? $_SESSION['products'] : array();
$products[] = $_POST['product'];
$_SESSION['products'] = $products;
}
?>
<html>
<body>
<pre><?php print_r($_SESSION); ?></pre>
<form name="input" action="index.php" method="post">
<input type="text" name="product" />
<input type="submit" value="Add" />
</form>
</body>
</html>
答案 3 :(得分:0)
$role=json_encode($checkUser1[0]);
$role2=str_replace('"','',$role);
$company=json_encode($checkUser2[0]);
$company=str_replace('"','',$company);
$_SESSION['LOGIN_STATUS']=true;
$_SESSION['UNAME']=$uname;
$_SESSION['datefrmt']='dd/mm/yy';
$_SESSION['role']=$role2;
$_SESSION['company']=$company;