php实现班级系统
数据库设计
创建数据库表存储班级、学生和教师信息。主要表包括classes(班级)、students(学生)、teachers(教师)和class_teacher(班级教师关联表)。
CREATE TABLE classes (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
grade VARCHAR(20) NOT NULL
);
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id)
);
CREATE TABLE teachers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
subject VARCHAR(50) NOT NULL
);
CREATE TABLE class_teacher (
class_id INT,
teacher_id INT,
PRIMARY KEY (class_id, teacher_id),
FOREIGN KEY (class_id) REFERENCES classes(id),
FOREIGN KEY (teacher_id) REFERENCES teachers(id)
);
连接数据库
使用PDO连接MySQL数据库,确保代码安全性和可维护性。
$host = 'localhost';
$dbname = 'school';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Could not connect to the database: " . $e->getMessage());
}
班级管理功能
实现添加、删除和查询班级的功能。

function addClass($name, $grade) {
global $pdo;
$stmt = $pdo->prepare("INSERT INTO classes (name, grade) VALUES (?, ?)");
$stmt->execute([$name, $grade]);
}
function deleteClass($id) {
global $pdo;
$stmt = $pdo->prepare("DELETE FROM classes WHERE id = ?");
$stmt->execute([$id]);
}
function getClasses() {
global $pdo;
$stmt = $pdo->query("SELECT * FROM classes");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
学生管理功能
实现学生信息的增删改查操作。
function addStudent($name, $classId) {
global $pdo;
$stmt = $pdo->prepare("INSERT INTO students (name, class_id) VALUES (?, ?)");
$stmt->execute([$name, $classId]);
}
function getStudentsByClass($classId) {
global $pdo;
$stmt = $pdo->prepare("SELECT * FROM students WHERE class_id = ?");
$stmt->execute([$classId]);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
教师分配功能
将教师分配到指定班级,并查询班级教师列表。

function assignTeacherToClass($teacherId, $classId) {
global $pdo;
$stmt = $pdo->prepare("INSERT INTO class_teacher (teacher_id, class_id) VALUES (?, ?)");
$stmt->execute([$teacherId, $classId]);
}
function getTeachersByClass($classId) {
global $pdo;
$stmt = $pdo->prepare("SELECT t.* FROM teachers t JOIN class_teacher ct ON t.id = ct.teacher_id WHERE ct.class_id = ?");
$stmt->execute([$classId]);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
前端界面
创建简单的HTML界面展示班级信息和操作表单。
<!DOCTYPE html>
<html>
<head>
<title>班级管理系统</title>
</head>
<body>
<h1>班级列表</h1>
<ul>
<?php foreach (getClasses() as $class): ?>
<li>
<?php echo $class['name'] ?> (<?php echo $class['grade'] ?>)
<a href="students.php?class_id=<?php echo $class['id'] ?>">查看学生</a>
</li>
<?php endforeach; ?>
</ul>
</body>
</html>
安全措施
实施参数化查询防止SQL注入,对用户输入进行验证和过滤。
function sanitizeInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
扩展功能
添加分页功能处理大量数据,实现学生成绩管理和考勤记录。
function getClassesWithPagination($page = 1, $perPage = 10) {
global $pdo;
$offset = ($page - 1) * $perPage;
$stmt = $pdo->prepare("SELECT * FROM classes LIMIT ?, ?");
$stmt->bindValue(1, $offset, PDO::PARAM_INT);
$stmt->bindValue(2, $perPage, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}






