prepare("INSERT INTO students (student_code, full_name, gender, class_id, guardian_name, status, notes)
VALUES (:code, :name, :gender, :class_id, :guardian, :status, :notes)");
$stmt->execute([
':code' => $studentCode,
':name' => $fullName,
':gender' => $gender !== '' ? $gender : null,
':class_id' => $classId,
':guardian' => $guardianName !== '' ? $guardianName : null,
':status' => $status,
':notes' => $notes !== '' ? $notes : null,
]);
header('Location: students.php?role=' . urlencode($role) . '&success=1');
exit;
} catch (PDOException $e) {
if ((int)$e->getCode() === 23000) {
$errors[] = 'Kode siswa sudah digunakan. Gunakan kode lain.';
} else {
$errors[] = 'Gagal menyimpan data siswa.';
}
}
}
}
$classes = $db->query("SELECT id, name, grade_level FROM classes ORDER BY grade_level, name")->fetchAll();
$students = $db->query("
SELECT s.id, s.student_code, s.full_name, s.status, s.created_at,
c.name AS class_name, c.grade_level
FROM students s
LEFT JOIN classes c ON c.id = s.class_id
ORDER BY s.created_at DESC
LIMIT 50
")->fetchAll();
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
$projectName = $_SERVER['PROJECT_NAME'] ?? 'School Management System';
?>
= htmlspecialchars($projectName) ?> — Data Siswa
Registrasi Siswa Baru
- = htmlspecialchars($err) ?>
Belum ada siswa yang terdaftar. Tambahkan data pertama di form.
| Kode |
Nama |
Kelas |
Status |
|
| = htmlspecialchars($student['student_code']) ?> |
= htmlspecialchars($student['full_name']) ?> |
= htmlspecialchars($student['class_name'] ?? '-') ?> |
= htmlspecialchars(ucfirst($student['status'])) ?> |
Detail
|
Data siswa berhasil ditambahkan.