Вычисление средней оценки - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь вычислить среднее значение на основе данных таблицы, которые будут получены.Как я могу отобразить ноль, если нет данных, пока пользователь не вставит их?

Вот что я сделал.

                                              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 Ответ

1 голос
/ 04 апреля 2019

Ты довольно близко.Просто инициализируйте переменные $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; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...