-1

运行 php 时收到错误消息

然而结果出来了

这是我的代码

function cart() {
    foreach($_SESSION as $name => $value) {
        if ($value>0) {
            if (substr($name, 0, 5) == 'cart_'){
                $id = substr($name, 5, (strlen($name)-5));
                $get = mysql_query('SELECT id, name, price FROM products WHERE id=' .mysql_real_escape_string((int)$id));
                while ($get_row = mysql_fetch_assoc($get)){
                    $sub = $get_row['price'] * $value;
                    echo $get_row['name'].' x '.$value.' @ &pound'.number_format($get_row['price'], 2).' = &pound'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'">[Delete]</a><br />' ;
                }
            }
            $total += $sub;
        }
    }
    echo $total;
}
?>

我收到一条错误消息

 Notice: Undefined variable: total in C:\xampp\htdocs\shoppingcart\cart.php on line 54

第 54 行是

 echo $total;

我的代码有什么问题??

我想我已经定义了代码

 $total += $sub;

谢谢你帮助我:)

4

3 回答 3

2

要使用 a+=它需要先设置,否则你会收到警告。

在它上面弹出一个$total=0;,你应该很甜。

function cart() {
    $total=0;
    // rest of your code...

您可以在此处进一步了解赋值运算符。

于 2012-08-29T09:36:43.217 回答
2

例如,如果您$_SESSION为空,则永远不会初始化该变量。此外,运算符+=意味着向变量添加一些内容 - 如果未事先设置变量,则会触发通知。

您可以$total = 0;在循环之前放置:

$total = 0;
foreach($_SESSION as $name => $value) {
...

无论如何,始终初始化您的变量是一个很好的做法,这样您就可以避免一些糟糕的意外。

于 2012-08-29T09:37:16.550 回答
1

将此添加为函数的第一行:

$total = 0;

因为现在你的循环第一次运行时,$total 不是一个已知的 var

于 2012-08-29T09:36:52.197 回答