Php 计算平均成绩
我试图根据表中的数据计算出一个平均值。如果在用户插入数据之前没有数据,如何回显零 以下是我所做的Php 计算平均成绩,php,mysqli,datatable,Php,Mysqli,Datatable,我试图根据表中的数据计算出一个平均值。如果在用户插入数据之前没有数据,如何回显零 以下是我所做的 while($row = mysqli_fetch_array($result_final_grade)){ ?>
while($row = mysqli_fetch_array($result_final_grade)){
?>
<tr>
<td class="text-center"> <?php echo $row['subject']; ?></td>
<td class="text-center"> <?php echo $row['grade']; ?></td>
</tr>
</tbody>
<?php
global $total4, $sum4, $average4;
$total4+=$row['grade'];
$sum4++;
} ?>
</table>
<?php $average4=($total4/$sum4);
$average4 = number_format($average4, 0, '.', '');
?>
AVERAGE GRADE: <?php echo $average4; ?>
如果没有表数据,则平均值等于0,但如果有表数据,则应计算平均值。您非常接近。只需在循环之前将$total4、$sum4和$average4变量初始化为零。您不应该需要该全局行,即使您这样做了,它也不应该在while循环中。结束标记可能也不应该是
<?php
// initialize your variables before the loop
$total4 = 0;
$sum4 = 0;
$average4 = 0;
while($row = mysqli_fetch_array($result_final_grade)){ ?>
<tr>
<td class="text-center"> <?php echo $row['subject']; ?></td>
<td class="text-center"> <?php echo $row['grade']; ?></td>
</tr>
<?php
$total4 += $row['grade'];
$sum4++;
} ?>
</tbody>
</table>
然后检查行数。如果不是零,计算平均值
<?php
if ($sum4) {
$average4 = $total4/$sum4;
}
$average = number_format($average4, 0, '.', '');
?>
AVERAGE GRADE: <?php echo $average4; ?>
$result\u final\u grade->num\u rows将返回结果中的行数,检查num rows是否大于0,然后执行while,否则echo 0不客气!:-我刚才对它做了一点修改,认为如果我们在开始时将$average4设置为零,可能会更容易阅读。