У меня проблема с вычислением среднего за квартал


я выполняю академическую историю, в базе данных у меня есть таблица успеваемости студента, и в следующем коде я делаю то, что я делаю, это приносить за квартал все предметы с соответствующей квалификацией.

то, что я пытался сделать, это то, что для каждого квартала я получаю среднее значение набора оценок и под каждым кварталом он показывает мне метку со средним кварталом: и рейтинг, что-то вроде следующего изображение:

Author: LULU, 2020-07-14

1 answers

Вы показываете среднее значение только в конце, вам нужно делать это каждый раз, когда вы меняете четверки.

  • инициализирует четырехлетний со значением по умолчанию (ноль)
  • внутри for анализирует, было ли изменение четверти
    • Если значение $Cuatrimestre отличается от нуля, это означает, что это первый и только образцы заголовок
    • Если значение отличается от нуля, вы должны показать среднее значение, а затем заголовок
         $suma = 0;
         $contador_calificaciones = 0;
         // Inicializar cuatrimestre en cero
         $Cuatrimestre = 0;

        for ($Cuatrimestre = 0;$row = sqlsrv_fetch_array($stmt);$Cuatrimestre = $row['Cuatrimestre']) {
             
            if($row['Cuatrimestre'] != $Cuatrimestre) {
                // Mostrar solo si ya hay datos
                if($Cuatrimestre != 0) {
                    // Cambió el cuatrimestre, hay que mostrar el promedio
             ?>
        <tr>
        <td colspan="5">
            PROMEDIO CUATRIMESTRAL:
            <?php echo round($suma/$contador_calificaciones, 2);?>  
        </td>
        </tr>
             <?php
                } // endif $Cuatrimestre != 0
                // Mostrar encabezado de cuatrimestre
            ?>
        <thead>
            <tr>
            <th colspan="5">
            <?php
                     // Tenías un if innecesario, comparando la misma variable
                     echo $row['Cuatrimestre']."o. "."CUATRIMESTRE: ";
            ?>
            </th>
            </tr>
        </thead>
        <?php
                // Reiniciar suma y contador
                $suma = 0;
                $contador_calificaciones = 0;
                // Actualizar valor de cuatrimestre
                $Cuatrimestre = $row['Cuatrimestre'];
            } // endif cuatrimestre diferente
             $suma += (int)$row['Calificacion'];
             $contador_calificaciones++;
        ?>
        <tbody>
            <tr>
            <td><?php echo $row['Nombre'];?></td>
            <td><?php echo $row['Creditos'];?></td>
            <td><?php echo $row['ElementoCatalogo'];?></td>
            <td><?php echo $row['Calificacion'];?></td>
            <td><?php echo $row['Cuatrimestre'];?></td>
            </tr>
        </tbody>
    <?php           
        } // endfor
 0
Author: Triby, 2020-07-14 20:12:24