计算平均成绩

时间:2019-04-03 23:46:21

标签: php mysqli datatable

我正在尝试根据将要输出的表数据计算平均值。如果在用户插入数据之前没有数据,我该如何回零?

这就是我所做的。

                                              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,但是当有表数据时,应计算平均值。

1 个答案:

答案 0 :(得分:1)

您非常接近。只需在循环之前将$total4$sum4$average4变量初始化为零即可。您不需要该global行,即使您这样做也不应该在while循环内。 (结束的</tbody>标签也不应该是。)

<?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; ?>