PHP无法增加任何值,但最后添加到数组中的值除外
我正在使用递增/递减更改购物车中物品的需求量。但是,这似乎只适用于添加到数组中的最后一个值/行。e、 g.如果我向购物车添加1个项目,则递增($\u SESSION['cart'][$comic\u id]++)可以正常工作。但是,如果我向购物车中添加第二个项目,则增量仅适用于最新添加的项目,而不适用于第一个添加的项目,对于任何其他添加的项目也可以这样说 有人能告诉我哪里出了问题并帮我修复代码吗 我使用foreach循环中包含的结尾处的$value进行回音 下面是我的代码(cart.php):PHP无法增加任何值,但最后添加到数组中的值除外,php,Php,我正在使用递增/递减更改购物车中物品的需求量。但是,这似乎只适用于添加到数组中的最后一个值/行。e、 g.如果我向购物车添加1个项目,则递增($\u SESSION['cart'][$comic\u id]++)可以正常工作。但是,如果我向购物车中添加第二个项目,则增量仅适用于最新添加的项目,而不适用于第一个添加的项目,对于任何其他添加的项目也可以这样说 有人能告诉我哪里出了问题并帮我修复代码吗 我使用foreach循环中包含的结尾处的$value进行回音 下面是我的代码(cart.php):
您必须对switch语句执行foreach操作,才能添加/删除每个项的值。那样
foreach($_SESSION['cart'] as $comic_id => $qty) {
switch($action) {
case "add":
if (isset($_SESSION['cart'][$comic_id])) {
$_SESSION['cart'][$comic_id]++;
} else {
$_SESSION['cart'][$comic_id] = 1;
}
break;
case "remove":
if (isset($_SESSION['cart'][$comic_id])) {
$_SESSION['cart'][$comic_id]--;}
if($_SESSION['cart'][$comic_id] == 0) unset($_SESSION['cart'][$comic_id]);
break;
case "empty":
unset($_SESSION['cart']);
session_destroy();
break;
}
}
您确定$comic\u id
设置正确吗?您的意思是什么?我能够为数组中的每个附加值($comic_id)回显$name、$qty和$price。但是,除了最后添加的值之外,无法为任何值增加$qty。请不要使用mysql.*
函数来编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果你选择PDO,。谢谢你的提醒。瓦利德打算稍后再做。但这对我的问题并没有任何帮助。如果变量还没有定义,我不确定foreach是否可以工作?注意:第28行C:\wamp\www\cart.php中未定义的索引:cart警告:为foreach()提供的参数无效第28行C:\wamp\www\cart.php中的通知:未定义变量:第109行C:\wamp\www\cart.php中的名称通知:未定义变量:第109行C:\wamp\www\cart.php中的数量通知:未定义变量:第109行C:\wamp\www\cart.php中的价格我添加了if(!isset)以消除错误,但无法再向数组添加任何内容。
foreach($_SESSION['cart'] as $comic_id => $qty) {
switch($action) {
case "add":
if (isset($_SESSION['cart'][$comic_id])) {
$_SESSION['cart'][$comic_id]++;
} else {
$_SESSION['cart'][$comic_id] = 1;
}
break;
case "remove":
if (isset($_SESSION['cart'][$comic_id])) {
$_SESSION['cart'][$comic_id]--;}
if($_SESSION['cart'][$comic_id] == 0) unset($_SESSION['cart'][$comic_id]);
break;
case "empty":
unset($_SESSION['cart']);
session_destroy();
break;
}
}