这是一个错字问题,我真的不想在这里留下我的代码。它不会让任何人受益。
这是我的代码,我希望变量$ x本身加上$ points的值。出于某种原因,这是我得到的输出:
TOTAL Before Add: 0
points: 8
TOTAL after add: 8
TOTAL Before Add: 0
points: 32
添加后总计:32
我希望这能使x:40(加8 + 32)。
为什么每次x再次从0开始?
感谢帮助, [R
答案 0 :(得分:4)
在代码中,您混淆了$row3
和$row4
,但我假设您在这里迭代了一行。此外,您似乎在这里提出了一个非常抽象的版本。验证即使在简化后也会出现错误,例如使用测试数据库。但假设情况并非如此,唯一的解释是:
您正在多次执行整个代码段。每次执行时,它只读取一行。添加
echo "Start of loop, x: $x";
之前,你会看到两次跑步。
最后一点,您应该只在2010年后的代码中使用PDO。它独立于数据库,并且对事务和准备好的语句提供了出色的支持。
回应编辑:
首先,您的代码容易受到SQL injection 的攻击。现在解决这个问题,例如使用PDO预处理语句。
其次,你为什么加入php代码?您应该使用多个JOINs计算数据库中所需的总和和所有数据。你不应该需要多于一个(也许是两个)SQL查询。
第三,问题是你没有增加$ total:
$total=$Total+$points;
由于$Total
未定义,因此评估为0
,因此您可以同样写:
$total = $points;
当然,你想要:
$total += $points;
但正如我上面提到的,在应用程序而不是数据库中执行琐碎的计算(例如求和)仍然是一种非常糟糕的编码风格。