如何在数据库的一列中添加所有值

时间:2019-03-08 09:20:07

标签: php mysqli

我得到了一个查询代码,我从数据库中获取了所有数据,这是我数据库中的一个int,然后使用时获取了所有数据,然后声明了一个总变量,该变量将显示总价值。对于前。我的数据库中有5和2,所以输出应该是7,但是输出是52,它是作为文本而不是int添加的。

 <?php
$st='SELECT rating FROM rating;';
$t=mysqli_stmt_init($conn);
mysqli_stmt_prepare($t,$st);
mysqli_stmt_execute($t);
$res=mysqli_stmt_get_result($t);
while($rop=mysqli_fetch_assoc($res)){
    $total=0;
 $total+=$rop['rating'];
 echo $total;
}

2 个答案:

答案 0 :(得分:1)

您可以直接使用MySQL的SUM()函数:

SELECT sum(rating) as total from rating

此查询将直接为您提供所有列值的总和。

因此,最终代码应为:

$st='SELECT sum(rating) as total from rating';
$t=mysqli_stmt_init($conn);
mysqli_stmt_prepare($t,$st);
mysqli_stmt_execute($t);
$res=mysqli_stmt_get_result($t);
$total=0;
while($rop=mysqli_fetch_assoc($res)){
 $total = $rop['total'];
}
 echo $total;

答案 1 :(得分:1)

更改查询
$st='SELECT rating FROM rating;';

$st='SELECT sum(rating) as total_sum FROM rating;';

也要更改

while($rop=mysqli_fetch_assoc($res)){
    $total=0;
 $total+=$rop['rating'];
 echo $total;
}

$total = mysqli_fetch_assoc($res)['total_sum'];
echo $total;
  • 此外,使列名与表名相同不是一种好习惯。