Как считать строки в таблице (phpMyAdmin) - PullRequest
0 голосов
/ 20 февраля 2019

В настоящее время я работаю над системой посещаемости, использующей php и mysql, и хочу подсчитать число присутствующих / отсутствующих / опоздавших учеников, что происходит за одним столом.Как, например, таблица выглядит следующим образом.

student_name | attendance status |  date
             |                   |
student1     |  Present          |  2019-02-21
student2     |  Absent           |  2019-02-21
student3     |  Late             |  2019-02-21  
student1     |  Absent           |  2019-02-22
student2     |  Absent           |  2019-02-22
student3     |  Present          |  2019-02-22

Я хочу вывод, как показано ниже: Показать, сколько подарков / отсутствий / опозданий студент в месяц, как

student 1    | 20 presents       |  4 absents   | 2 lates

Яиспользуя библиотеку fpdf , но даже php-код для этого - большая помощь.

Название таблицы: Participance_records

Solt'n

    $result = mysqli_query($conn, "
                                SELECT student_name,
  SUM(CASE WHEN attendance = 'Present' THEN 1 ELSE 0 END) AS presents,
  SUM(CASE WHEN attendance = 'Absent' THEN 1 ELSE 0 END) AS absents,
  SUM(CASE WHEN attendance = 'Late' THEN 1 ELSE 0 END) AS lates
FROM attendance_records
GROUP BY student_name
    ") or die("database error:". mysqli_error($conn));                                    
    foreach( $result as $row ) {
    $pdf->SetFont('Arial','I',9);
    $pdf->Ln();     
      foreach($row as $column) {                                                                                                                                                           
    $pdf->Cell(39,10,$column,1);
    }
}

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы можете объединить SUM и CASE , чтобы получить то, что вам нужно

Попробуйте использовать запрос

SELECT student_name,
  SUM(CASE WHEN attendance = 'Present' THEN 1 ELSE 0 END) AS presents,
  SUM(CASE WHEN attendance = 'Absent' THEN 1 ELSE 0 END) AS absents,
  SUM(CASE WHEN attendance = 'Late' THEN 1 ELSE 0 END) AS lates
FROM attendance_records
GROUP BY student_name
0 голосов
/ 20 февраля 2019

Использовать в phpmyadmin ..

SELECT * FROM table_name ГДЕ посещаемость_status = отсутствует;

Phpmyadmin будет считать его автоматически ..

Но вы должны кодировать в php и mysqlили mysqli ..

...