$row['username'], 'total_attendance' => $attended, 'registered_meetings' => $registered, 'percentage' => $percentage ]; $participation_percentages[] = $percentage; $participation_registered[] = $registered; $participation_attended[] = $attended; } // Globale Durchschnitte (unverändert) $avg_attendance = 0; $sql_avg_attendance = " SELECT AVG(attended_count) AS avg_attended FROM ( SELECT COUNT(mt.user_id) AS attended_count FROM meeting_teilnehmer mt JOIN meetings m ON mt.meeting_id = m.id WHERE mt.attended = 1 AND m.is_completed = 1 GROUP BY mt.meeting_id ) AS subquery"; $result_avg = mysqli_query($conn, $sql_avg_attendance); if ($row = mysqli_fetch_assoc($result_avg)) { $avg_attendance = round($row['avg_attended'], 2); } $avg_wore_color = 0; $sql_avg_wore_color = " SELECT AVG(wore_color_count) AS avg_wore_color FROM ( SELECT COUNT(mt.user_id) AS wore_color_count FROM meeting_teilnehmer mt JOIN meetings m ON mt.meeting_id = m.id WHERE mt.wore_color = 1 AND m.is_completed = 1 GROUP BY mt.meeting_id ) AS subquery"; $result_avg_wore = mysqli_query($conn, $sql_avg_wore_color); if ($row = mysqli_fetch_assoc($result_avg_wore)) { $avg_wore_color = round($row['avg_wore_color'], 2); } // FARBE GETRAGEN: Sortiert nach Prozent, mit Prozentwert $wore_color_stats = []; $wore_color_percentages = []; $wore_color_attended = []; $wore_color_count = []; $sql_wore_color = " SELECT u.username, SUM(CASE WHEN mt.attended = 1 THEN 1 ELSE 0 END) AS total_attendance, SUM(CASE WHEN mt.wore_color = 1 THEN 1 ELSE 0 END) AS wore_color_count, CASE WHEN SUM(CASE WHEN mt.attended = 1 THEN 1 ELSE 0 END) > 0 THEN ROUND( (SUM(CASE WHEN mt.wore_color = 1 THEN 1 ELSE 0 END) / SUM(CASE WHEN mt.attended = 1 THEN 1 ELSE 0 END)) * 100, 1 ) ELSE 0.0 END AS percentage FROM meeting_teilnehmer mt JOIN meetings m ON mt.meeting_id = m.id AND m.is_completed = 1 JOIN users u ON mt.user_id = u.id GROUP BY u.id, u.username ORDER BY percentage DESC, u.username ASC "; $result_wore = mysqli_query($conn, $sql_wore_color); while ($row = mysqli_fetch_assoc($result_wore)) { $attended = (int)$row['total_attendance']; $wore = (int)$row['wore_color_count']; $percentage = (float)$row['percentage']; $wore_color_stats[] = [ 'username' => $row['username'], 'wore_color_count' => $wore, 'total_attendance' => $attended, 'percentage' => $percentage ]; $wore_color_percentages[] = $percentage; $wore_color_attended[] = $attended; $wore_color_count[] = $wore; } // Verschiebungsvorschläge (unverändert) $reschedule_stats = []; $sql_reschedule = " SELECT u.username, COUNT(p.id) AS reschedule_count FROM meeting_reschedule_proposals p JOIN users u ON p.proposed_by_user_id = u.id GROUP BY u.username ORDER BY reschedule_count DESC, u.username ASC "; $result_reschedule = mysqli_query($conn, $sql_reschedule); while ($row = mysqli_fetch_assoc($result_reschedule)) { $reschedule_stats[] = $row; } require_once 'inc/header.php'; ?>
Insgesamt = $total_meetings ?> abgeschlossene Treffen.
Durchschnittliche Anwesenheit je Treffen: = htmlspecialchars($avg_attendance) ?>
Durchschnittliche korrekte Farbe je Treffen: = htmlspecialchars($avg_wore_color) ?>
Wer schlägt am häufigsten eine Terminverschiebung vor?