我有以下代码:
if($_SESSION['basket']){
$i=0;
while($i < count($_SESSION['basket'])) {
if(is_array($_SESSION['basket'][$i][$product['productid']]) && $_SESSION['basket'][$i][$product['productid']]['material']==$_POST['material'] && $_SESSION['basket'][$i][$product['productid']]['size']==$_POST['size']){
$_SESSION['basket'][$i][$product['productid']]['qty']+=$_POST['qty'];
}else{
echo $i."-4";
$_SESSION['basket'][][$product['productid']] = array("qty"=>$_POST['qty'], "material"=>$_POST['material'],"size"=>$_POST['size']);
}
$i++;
}
}else{
$_SESSION['basket'][][$product['productid']] = array("qty"=>$_POST['qty'], "material"=>$_POST['material'],"size"=>$_POST['size']);
}
当我把一个商品添加到购物篮中时,产品显示的数量是2,而我只添加了1,有时还会添加额外的产品,有人能帮我吗?
我会仔细检查$_SESSION['basket'][$i][$product['productid']]['qty']
加$_POST['qty']
是否等于你想要的启动器值,并将其回声出来,确保它们是int(如果你还没有(
尝试
$_SESSION['basket'][$i][$product['productid']]['qty'] = $_SESSION['basket'][$i][$product['productid']]['qty'] + $_POST['qty'];
而不是使用CCD_ 3运算符。它过去给我带来了问题。
或者您的count($_SESSION['basket'])
可能等于2
,因此运行两次加法。