108 lines
6.2 KiB
PHP
108 lines
6.2 KiB
PHP
|
<?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'); ?>
|