无法从查询中添加int值

时间:2013-03-11 11:33:38

标签: php mysql

嘿伙计我有一个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!

3 个答案:

答案 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)

使用PHP完成总和,但不要忘记使用invalfloatval转换数据

echo "<td>".(intval($key->r4) + intval($key->sr13) + intval($key->huawei))."</td>;

并且不要忘记用TD标记关闭</td>