$success = "Student added successfully!"; ?> File: modules/teacher/attendance.php
-- Students table CREATE TABLE students ( student_id INT(11) AUTO_INCREMENT PRIMARY KEY, user_id INT(11), admission_no VARCHAR(20) UNIQUE, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, dob DATE, gender ENUM('Male','Female','Other'), phone VARCHAR(15), address TEXT, class_id INT(11), section_id INT(11), parent_id INT(11), FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ); Full SQL schema with all 12 tables and foreign keys is provided in the downloadable source code package. school-management-system/ │ ├── assets/ │ ├── css/ (custom styles, Bootstrap) │ ├── js/ (custom JS, jQuery) │ └── images/ │ ├── config/ │ └── database.php (DB connection) │ ├── includes/ │ ├── header.php │ ├── footer.php │ ├── sidebar.php │ └── auth.php (session validation) │ ├── modules/ │ ├── admin/ │ │ ├── dashboard.php │ │ ├── manage_students.php │ │ ├── manage_teachers.php │ │ └── ... │ ├── teacher/ │ │ ├── attendance.php │ │ ├── marks_entry.php │ │ └── ... │ ├── student/ │ │ ├── view_attendance.php │ │ ├── view_results.php │ │ └── ... │ └── parent/ │ ├── child_attendance.php │ └── fee_status.php │ ├── login.php ├── logout.php ├── index.php (redirects to login or dashboard) └── README.md Core Code Implementation 1. Database Connection ( config/database.php ) <?php $host = 'localhost'; $dbname = 'school_management'; $username = 'root'; $password = ''; try $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); catch(PDOException $e) die("Connection failed: " . $e->getMessage()); school management system project with source code in php
$allowed_roles = ['admin', 'teacher', 'student', 'parent']; if (!in_array($_SESSION['role'], $allowed_roles)) die("Unauthorized access."); $success = "Student added successfully
// Insert into students table $stmt = $pdo->prepare("INSERT INTO students (user_id, admission_no, first_name, last_name, dob, class_id, section_id) VALUES (?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$user_id, $_POST['admission_no'], $_POST['first_name'], $_POST['last_name'], $_POST['dob'], $_POST['class_id'], $_POST['section_id']]); │ ├── student/ │ │ ├── view_attendance
<?php require_once '../../config/database.php'; $class_id = $_GET['class_id'] ?? 1; $date = date('Y-m-d'); // Fetch students of this class $stmt = $pdo->prepare("SELECT s.student_id, s.first_name, s.last_name FROM students s WHERE s.class_id = ?"); $stmt->execute([$class_id]); $students = $stmt->fetchAll();