39037-vm/includes/db_init.php
Flatlogic Bot 463712fc0c SMS
2026-03-07 09:22:35 +00:00

52 lines
1.7 KiB
PHP

<?php
require_once __DIR__ . '/../db/config.php';
function ensure_schema(PDO $db): void {
$db->exec("
CREATE TABLE IF NOT EXISTS classes (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120) NOT NULL,
grade_level VARCHAR(20) NOT NULL,
homeroom_teacher VARCHAR(120) DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
");
$db->exec("
CREATE TABLE IF NOT EXISTS students (
id INT AUTO_INCREMENT PRIMARY KEY,
student_code VARCHAR(30) NOT NULL UNIQUE,
full_name VARCHAR(160) NOT NULL,
gender VARCHAR(12) DEFAULT NULL,
class_id INT DEFAULT NULL,
guardian_name VARCHAR(160) DEFAULT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'aktif',
notes TEXT DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_students_class (class_id),
INDEX idx_students_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
");
}
function seed_classes(PDO $db): void {
$count = (int)$db->query("SELECT COUNT(*) FROM classes")->fetchColumn();
if ($count > 0) {
return;
}
$defaults = [
['X IPA 1', '10', 'Ibu Fitri'],
['X IPA 2', '10', 'Bapak Dedi'],
['XI IPS 1', '11', 'Ibu Rina'],
['XII IPA 1', '12', 'Bapak Arif'],
];
$stmt = $db->prepare("INSERT INTO classes (name, grade_level, homeroom_teacher) VALUES (:name, :grade, :teacher)");
foreach ($defaults as $row) {
$stmt->execute([
':name' => $row[0],
':grade' => $row[1],
':teacher' => $row[2],
]);
}
}