///////////////////////////////////// Database Configuration ////////////////////////// // config/database.php return [ 'host' => 'localhost', 'dbname' => 'school_tours', 'username' => 'root', 'password' => '', 'charset' => 'utf8mb4' ]; ///////////////////////////////////// Database Model ////////////////////////// // models/Database.php PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { $this->pdo = new PDO($dsn, $config['username'], $config['password'], $options); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } } public function getPdo() { return $this->pdo; } } ///////////////////////////////////// Learner Model ////////////////////////// // models/Learner.php db = $db; } public function getAll() { $stmt = $this->db->getPdo()->query("SELECT * FROM learners ORDER BY surname, name"); return $stmt->fetchAll(); } public function create(array $data) { $stmt = $this->db->getPdo()->prepare("INSERT INTO learners (name, surname, grade) VALUES (?, ?, ?)"); $stmt->execute([$data['name'], $data['surname'], $data['grade']]); return $this->db->getPdo()->lastInsertId(); } public function delete($id) { $stmt = $this->db->getPdo()->prepare("DELETE FROM learners WHERE id = ?"); return $stmt->execute([$id]); } public function getById($id) { $stmt = $this->db->getPdo()->prepare("SELECT * FROM learners WHERE id = ?"); $stmt->execute([$id]); return $stmt->fetch(); } } ///////////////////////////////////// Main Controller Logic ////////////////////////// // task4.php handleRequest($action); break; case 'tours': $tourController->handleRequest($action); break; case 'registrations': $registrationController->handleRequest($action); break; case 'reports': $reportController->handleRequest($action); break; default: include __DIR__ . '/views/layouts/main.php'; break; }