Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP无法增加任何值,但最后添加到数组中的值除外_Php - Fatal编程技术网

PHP无法增加任何值,但最后添加到数组中的值除外

PHP无法增加任何值,但最后添加到数组中的值除外,php,Php,我正在使用递增/递减更改购物车中物品的需求量。但是,这似乎只适用于添加到数组中的最后一个值/行。e、 g.如果我向购物车添加1个项目,则递增($\u SESSION['cart'][$comic\u id]++)可以正常工作。但是,如果我向购物车中添加第二个项目,则增量仅适用于最新添加的项目,而不适用于第一个添加的项目,对于任何其他添加的项目也可以这样说 有人能告诉我哪里出了问题并帮我修复代码吗 我使用foreach循环中包含的结尾处的$value进行回音 下面是我的代码(cart.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;  
}


}