我正在学习PHP并为实践做一个基本的电子商务购物车。我遇到了一个难以理解的问题。我制作了一个数组来显示购物者在购物车中的单个商品的当前金额,而不是显示它显示的价值"数组。"
以下是我正在使用的内容:
<?php
if(isset($_SESSION['Cart'])){
$sql="SELECT * FROM products where Product_ID IN (";
foreach($_SESSION['Cart'] as $id => $value){
$sql.=$id.",";
}
$sql=substr($sql, 0, -1).") ORDER BY Category ASC";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
?>
<p><?php echo $row['Name']?> x <?php echo $_SESSION['Cart'][$row['Product_ID']['quantity']] ?></p>
<?php
}
}else{
echo "<p>There are no products selected</p>";
}
?>
我不确定这是不是确切问题所在。我的网站的其余部分来自here(索引)和here(产品页面),如果有人愿意对我进行问题排查。
答案 0 :(得分:0)
我认为这行代码存在问题:
$_SESSION['Cart'][$row['Product_ID']['quantity']]
您从$_SESSION['Cart']
获得的值为$row
的维度数组$row['Product_ID']
。我认为string
不是数组,而是int
或$row['Product_ID']['quantity']
,因此调用{{1}}是一个问题。
答案 1 :(得分:0)
根据您的反馈
如果尝试print_r($_SESSION['Cart'][$row['Product_ID']['quantity']]['quantity])
给你Array ( [quantity] => 1 )
然后你可以回复$_SESSION['Cart'][$row['Product_ID']['quantity']]['quantity]
给你1
但我不认为这是初衷。 我认为你真正的问题是从为数组赋值时,键可能不匹配。
尝试上面的代码,让我们知道它是否有帮助