0) { // Check if course already exists under selected group $stmt = $db->prepare("SELECT id FROM courses WHERE group_id = ? AND code = ?"); $stmt->execute([$group_id, $course_code]); $existing = $stmt->fetch(); if ($existing) { $course_id = $existing['id']; } else { // Create a new course record under the selected group $stmt = $db->prepare(" INSERT INTO courses (group_id, code, name_th, credits, lecture_hours, practice_hours, self_study_hours, sort_order) VALUES (?, ?, ?, ?, ?, ?, ?, 0) "); $stmt->execute([$group_id, $course_code, $course_name, $credits, $lecture, $practice, $self_study]); $course_id = $db->lastInsertId(); } } $stmt = $db->prepare("INSERT INTO student_courses (student_id, course_id, course_code, course_name_th, credits, lecture_hours, practice_hours, self_study_hours, grade, course_type, semester, academic_year, source_type, notes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'manual', ?)"); $stmt->execute([$student_id, $course_id, $course_code, $course_name, $credits, $lecture, $practice, $self_study, $grade ?: null, $course_type ?: null, $semester ?: null, $academic_year ?: null, $notes]); header('Location: ' . BASE_URL . '/students/view.php?id=' . $student_id . '&added=1'); } catch (PDOException $e) { header('Location: ' . BASE_URL . '/students/view.php?id=' . $student_id . '&error=' . urlencode($e->getMessage())); } exit;