Limmat/s/process_registration.php

108 lines
6.2 KiB
PHP
Raw Normal View History

2025-01-07 03:45:35 +01:00
<?php
include('includes/header.php');
$studentID = $studentInfos['data']['id'];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$cat_id = validate($_POST['cat_id']);
$category = getById('tbl_categories', $cat_id);
$max_courses = $category['data']['max_courses'];
$allAssignedCourses = getAllAssignedCoursesByCategory($studentID, $cat_id);
$numAssignedCourses = count($allAssignedCourses);
if (isset($_POST['selected_courses'])) {
// Alle ausgewählten Kurse
$selectedCourses = $_POST['selected_courses'];
$numSelectedCourses = count($selectedCourses);
// Überprüfen, welche Kurse abgewählt wurden
$unselectedCourses = array_diff($allAssignedCourses, $selectedCourses);
$numUnselectedCourses = count($unselectedCourses);
// Anzahl der Kurse nach Abwahl berücksichtigen
$totalSelectedCourses = $numSelectedCourses;
if ($totalSelectedCourses > $max_courses) {
// Wenn die Gesamtanzahl der ausgewählten Kurse das Limit überschreitet
echo '<div class="alert alert-danger" role="alert"><i class="ti ti-exclamation-circle me-2"></i>Du darfst nicht mehr als ' . $max_courses . ' Kurse auswählen.</div>';
} else {
// Überprüfen, ob der Schüler bereits für jeden Kurs angemeldet ist
foreach ($selectedCourses as $courseID) {
global $conn;
// Überprüfen, ob bereits ein Eintrag für diesen Schüler und diesen Kurs existiert
$check_query = "SELECT * FROM tbl_assign_students_courses WHERE student_id = '$studentID' AND course_id = '$courseID'";
$check_result = mysqli_query($conn, $check_query);
if (mysqli_num_rows($check_result) > 0) {
// Eintrag existiert bereits, nichts tun
$courseData = getById('tbl_courses', $courseID);
echo '<div class="alert alert-light" role="alert"><i class="ti ti-line-dashed me-2"></i>Deine Anmeldung für den Kurs <b>' . $courseData['data']['name'] . ' </b> bleibt unverändert.</div>';
} else {
// Eintrag existiert noch nicht, hinzufügen
$status = 'Ausgewählt';
$insert_query = "INSERT INTO tbl_assign_students_courses (student_id, course_id, status) VALUES ('$studentID', '$courseID', '$status')";
$insert_result = mysqli_query($conn, $insert_query);
if ($insert_result) {
// Erfolgreich eingetragen
$courseData = getById('tbl_courses', $courseID);
echo '<div class="alert alert-success" role="alert"><i class="ti ti-circle-check me-2"></i>Anmeldung für den Kurs <b>' . $courseData['data']['name'] . '</b> erfolgreich eingereicht.</div>';
} else {
// Fehler beim Eintragen
$courseData = getById('tbl_courses', $courseID);
echo '<div class="alert alert-danger" role="alert"><i class="ti ti-exclamation-circle me-2"></i>Fehler beim Eintragen der Anmeldung für den Kurs <b>' . $courseData['data']['name'] . '</b> .</div>';
}
}
}
// Überprüfen, ob der Schüler Kurse abgewählt hat
if (!empty($unselectedCourses)) {
foreach ($unselectedCourses as $unselectedCourseID) {
global $conn;
$delete_query = "DELETE FROM tbl_assign_students_courses WHERE student_id = '$studentID' AND course_id = '$unselectedCourseID'";
$delete_result = mysqli_query($conn, $delete_query);
if ($delete_result) {
// Erfolgreich gelöscht
$courseData = getById('tbl_courses', $unselectedCourseID);
echo '<div class="alert alert-info" role="alert"><i class="ti ti-info-circle me-2"></i>Deine Anmeldung für den Kurs <b> ' . $courseData['data']['name'] . ' </b> wurde zurückgezogen.</div>';
} else {
// Fehler beim Löschen
$courseData = getById('tbl_courses', $unselectedCourseID);
echo '<div class="alert alert-danger" role="alert"><i class="ti ti-exclamation-circle me-2"></i>Fehler beim Zurückziehen der Anmeldung für den Kurs <b>' . $courseData['data']['name'] . '</b> .</div>';
}
}
}
}
} else {
// Wenn keine Kurse ausgewählt wurden
// Überprüfen, ob Einträge in der Datenbank für diesen Schüler und diese Kategorie vorhanden sind
if (empty($allAssignedCourses)) {
// Keine Einträge vorhanden
echo '<div class="alert alert-warning" role="alert"><i class="ti ti-alert-triangle me-2"></i>Bitte wähle mindestens einen Kurs aus.</div>';
} else {
// Alle vorhandenen Einträge für den Schüler in dieser Kategorie werden gelöscht
global $conn;
$delete_query = "DELETE tac FROM tbl_assign_students_courses tac
JOIN tbl_courses tc ON tac.course_id = tc.id
WHERE tac.student_id = '$studentID' AND tc.category_id = '$cat_id'";
$delete_result = mysqli_query($conn, $delete_query);
if ($delete_result) {
// Erfolgreich gelöscht
echo '<div class="alert alert-info" role="alert"><i class="ti ti-info-circle me-2"></i>Deine Anmeldungen für alle Kurse in dieser Kategorie wurden zurückgezogen.</div>';
} else {
// Fehler beim Löschen
echo '<div class="alert alert-danger" role="alert"><i class="ti ti-exclamation-circle me-2"></i>Fehler beim Zurückziehen der Anmeldungen für alle Kurse in dieser Kategorie.</div>';
}
}
}
} else {
// Wenn kein POST-Request gesendet wurde
echo '<div class="alert alert-danger" role="alert">Ungültiger Request.</div>';
}
?>
<a href="register.php?id=<?= $cat_id ;?>" class="btn btn-light"> <i class="ti ti-arrow-left"></i> Zurück zur Anmeldung</a>
<?php include('includes/footer.php'); ?>