Php 为什么此数组会打印“0”;数组";而不是一个值?(菲律宾)
我正在学习PHP和做一个基本的电子商务购物车的实践。我遇到了一个困扰我的问题。我制作了一个数组来显示购物者购物车中单个商品的当前数量,而不是显示它显示的“数组”值 下面是我正在使用的:Php 为什么此数组会打印“0”;数组";而不是一个值?(菲律宾),php,html,arrays,web,Php,Html,Arrays,Web,我正在学习PHP和做一个基本的电子商务购物车的实践。我遇到了一个困扰我的问题。我制作了一个数组来显示购物者购物车中单个商品的当前数量,而不是显示它显示的“数组”值 下面是我正在使用的: <?php if(isset($_SESSION['Cart'])){ $sql="SELECT * FROM products where Product_ID IN ("; foreach($_SESSION['Cart'] as $id => $value){
<?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>";
}
?>
x
但我不确定这是否就是问题所在。如果有人愿意与我一起解决问题,我的网站的其余部分都是来源(索引)和(产品页面)。我认为这一行代码有问题:
$_SESSION['Cart'][$row['Product_ID']['quantity']]
您将从$\u会话['Cart']
获取一个值,其中包含$row
的维度数组。我认为$row['Product\u ID']
不是数组,而是字符串或int
,因此调用$row['Product\u ID']['quantity']
是一个问题。基于您的反馈
如果尝试print\r($\u SESSION['Cart'][$row['Product\u ID']['quantity']]['quantity])
将为您提供数组([quantity]=>1)
然后,您可以回显$\u会话['Cart'][$row['Product\u ID']['quantity']['quantity]['quantity]
以提供1
但我不认为这是初衷。
我认为您真正的问题在于,当您为数组赋值时,可能存在键不匹配
请尝试上面的代码,并告知是否有帮助。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,.@user3807604对打印“Array”的变量执行print_r()
而不是echo
。查看数组的结构。从那里你就知道该怎么办了。例如:print\r($\u SESSION['Cart'][$row['Product\u ID']['quantity']]])
别忘了把键放在数组的末尾,例如$arr[0]
或$arr['quantity']]
@Rybo111打印时,我得到如下结果:橙汁x数组([quantity]=>1)名称(橙汁)显示正确,它正在计算数量,但如果我把它从打印切换回echo,它仍然像橙汁x数组。为什么它不显示它跟踪的数量呢?不管你的数组是什么,你都需要按照@RaymondAtivie所说的做,然后打印它。这将为您提供价值关联的密钥。然后,您需要将['key\u here']
添加到您尝试回显的变量的末尾。