如何用PHP打印SUM()的mysqli结果?

时间:2017-11-14 01:31:21

标签: php mysqli

我有一个名为“hours”的表格,其中包含以下列:

id,int(11)

日期,日期

小时,int(11)

我在桌面上运行此查询:

SELECT SUM(hours) as value_total FROM hours

返回小时列中值的正确总和 - 68586

将此结果传递给数组,但是当我尝试打印包含总和68586的数组的索引时,它不会出现在屏幕上。

这是我在PHP中的代码

if($result = $conn->query("SELECT SUM(hours) as value_total FROM hours") or die(mysql_error())) {
    if ($result->num_rows) {

        while ($rows = $result->fetch_assoc())
        echo '<pre>', print_r($rows), '</pre>';

        print_r($rows['value_total']);
    } 
} else {
    die($conn->error);
}

print_r试图打印传递给数组的总和的索引,但没有输出:(

现在,我屏幕上的内容是:

Array
(
    [value_total] => 68586
)
1

老实说这是一个noob错误我正在某个地方我知道它,但是如何用php打印“value_total”到页面?

1 个答案:

答案 0 :(得分:2)

要了解您的错误,请更改:

while ($rows = $result->fetch_assoc())
echo '<pre>', print_r($rows), '</pre>';
print_r($rows['value_total']);

为:

while ($rows = $result->fetch_assoc())
{
    echo '<pre>', print_r($rows), '</pre>';
    print_r($rows['value_total']);
}

因为你的print_r在while循环之外,因为只有紧接着的下一个命令是循环的一部分,并且在第二行是$ rows null

然而正如@Phil指出的那样,如果您期望单行结果,请不要为while循环烦恼......

if( $rows = $result->fetch_assoc())
{
  echo '<pre>', print_r($rows), '</pre>';
  print_r($rows['value_total']);
}