嘿伙计我有一个mysql查询从数据库表中读取一些记录。字段$ key-> r4,$ key-> sr13和$ key-> huawei完美显示,但我无法得到三者的总和。 这是我的代码:
$total_r4=0;$total_sr13=0;$total_huawei=0;
foreach($view_data->result() as $key){
$total_r4 += $key->r4;
$total_sr13 += $key->sr13;
$total_huawei += $key->huawei;
echo "<tr>";
echo "<td>$key->date";
echo "<td>$key->time";
echo "<td>$key->r4";
echo "<td>$key->sr13";
echo "<td>$key->huawei";
echo "<td>".$key->r4 + $key->sr13 + $key->huawei;
}
问题实际上是最后一行,其中3个变量没有被SUMed!
答案 0 :(得分:0)
尝试:
...
$total_r4 += $key->r4;
$total_sr13 += $key->sr13;
$total_huawei += $key->huawei;
$tdTotal = ($key->r4 + $key->sr13 + $key->huawei);
.....
echo "<td>".$tdTotal."</td>";
答案 1 :(得分:0)
如Operator Precedence所述,.
字符串连接运算符和+
算术加法运算符都具有相同的优先级。由于它们是左关联的,因此从左到右进行评估;因此,您当前的表达式评估为:
echo (("<td>".$key->r4) + $key->sr13) + $key->huawei;
要强制使用其他评估订单,请使用明确的括号:
echo "<td>". ($key->r4 + $key->sr13 + $key->huawei);
或者不要使用字符串连接,而是在echo
语句中使用多个参数:
echo "<td>", $key->r4 + $key->sr13 + $key->huawei;
请注意,第二种方法更有效,因为PHP不需要在内存中构建连接字符串。通过使用不需要变量扩展的单引号文字,还可以避免对双引号字符串文字进行不必要的解析:
echo '<td>', $key->r4 + $key->sr13 + $key->huawei;
答案 2 :(得分:0)