运行我的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.' @ £'.number_format($get_row['price'], 2).' = £'.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;
感谢您帮助我:)
答案 0 :(得分:2)
要使用+=
,需要先设置它,否则会收到警告。
在它上面弹出一个$total=0;
你应该很好。
function cart() {
$total=0;
// rest of your code...
您可以进一步了解赋值运算符here。
答案 1 :(得分:2)
如果您的$_SESSION
为空,则该变量永远不会被初始化。此外,运算符+=
表示向变量添加内容 - 如果事先未设置变量,则触发通知。
您可以将$total = 0;
放在循环之前:
$total = 0;
foreach($_SESSION as $name => $value) {
...
无论如何始终初始化变量是一种很好的做法,因此您可以避免一些不良的意外。
答案 2 :(得分:1)
将此添加为您函数的第一行:
$total = 0;
因为现在第一次循环运行,$ total不是已知的var