diff --git a/admin/categories-edit.php b/admin/categories-edit.php index 66cc398..23118fc 100644 --- a/admin/categories-edit.php +++ b/admin/categories-edit.php @@ -22,7 +22,8 @@
- - - - - - \ No newline at end of file diff --git a/config/function.php b/config/function.php index e58cd68..043950e 100644 --- a/config/function.php +++ b/config/function.php @@ -962,7 +962,7 @@ function isStudentRegisteredForCourse($studentId, $courseId) { $stmt->fetch(); $stmt->close(); - return $count > 0; + return $count = 0; } @@ -1001,4 +1001,132 @@ function getAllAssignedCoursesByCategory($studentID, $categoryID) { return $assignedCourses; } +// Funktion, die alle Schüler zählt, die einer Klasse zugewiesen sind, die der Kategorie und dem Kurs zugeordnet ist +function countAllStudentsInCourse($courseID) { + global $conn; + + // Abfrage, um alle Schüler zu zählen, deren Klasse der Kategorie und dem Kurs zugeordnet ist + $query = " + SELECT COUNT(DISTINCT s.id) + FROM tbl_students s + INNER JOIN tbl_assign_categories_classes acc ON s.class = acc.class_id + INNER JOIN tbl_assign_courses_classes acc_courses ON acc.class_id = acc_courses.class_id + WHERE acc_courses.course_id = '$courseID' + AND acc.category_id = ( + SELECT category_id FROM tbl_courses WHERE id = '$courseID' + ) + "; + + $result = mysqli_query($conn, $query); + + if ($result) { + $row = mysqli_fetch_row($result); + return $row[0]; // Gibt die Anzahl der Schüler zurück + } + + return 0; // Falls keine Schüler gefunden wurden +} + + +// Funktion, um Schüler nach Status zu zählen +function countStudentsByStatus($courseID, $status) { + global $conn; + + // SQL-Abfrage, um die Anzahl der Schüler mit einem bestimmten Status zu zählen + $query = " + SELECT COUNT(DISTINCT s.id) + FROM tbl_students s + INNER JOIN tbl_assign_categories_classes acc ON s.class = acc.class_id + INNER JOIN tbl_assign_courses_classes acc_courses ON acc.class_id = acc_courses.class_id + INNER JOIN tbl_assign_students_courses asc_tbl ON asc_tbl.student_id = s.id + WHERE acc_courses.course_id = '$courseID' + AND acc.category_id = ( + SELECT category_id FROM tbl_courses WHERE id = '$courseID' + ) + AND asc_tbl.status = '$status' + "; + + $result = mysqli_query($conn, $query); + + if ($result) { + $row = mysqli_fetch_row($result); + return $row[0]; // Gibt die Anzahl der Schüler mit diesem Status zurück + } + + return 0; // Falls keine Schüler gefunden wurden +} + +function countStudentsWithoutSelection($classID, $categoryID) { + global $conn; + + $query = " + SELECT COUNT(DISTINCT s.id) AS no_selection_count + FROM tbl_students s + LEFT JOIN tbl_assign_students_courses asc_tbl + ON asc_tbl.student_id = s.id + AND asc_tbl.course_id IN ( + SELECT id + FROM tbl_courses + WHERE category_id = '$categoryID' + ) + WHERE s.class = '$classID' + AND asc_tbl.course_id IS NULL + "; + + $result = mysqli_query($conn, $query); + + if ($result) { + $row = mysqli_fetch_assoc($result); + return $row['no_selection_count']; + } + + return 0; // Falls keine Schüler gefunden wurden +} + +function countStudentsInClass($classID) { + global $conn; + + $query = " + SELECT COUNT(*) AS student_count + FROM tbl_students + WHERE class = '$classID' + "; + + $result = mysqli_query($conn, $query); + + if ($result) { + $row = mysqli_fetch_assoc($result); + return $row['student_count']; + } + + return 0; // Falls keine Schüler in der Klasse gefunden wurden +} + +function countStudentsWithSelection($classID, $categoryID) { + global $conn; + + $query = " + SELECT COUNT(DISTINCT s.id) AS selected_count + FROM tbl_students s + JOIN tbl_assign_students_courses asc_tbl + ON s.id = asc_tbl.student_id + WHERE s.class = '$classID' + AND asc_tbl.course_id IN ( + SELECT id + FROM tbl_courses + WHERE category_id = '$categoryID' + ) + "; + + $result = mysqli_query($conn, $query); + + if ($result) { + $row = mysqli_fetch_assoc($result); + return $row['selected_count']; + } + + return 0; // Falls keine Schüler mit einer Auswahl gefunden wurden +} + + ?> \ No newline at end of file