PHP 语言 实现课程安排功能

PHP阿木 发布于 2025-07-02 4 次阅读


PHP 课程安排系统实现

课程安排是教育机构中一项重要的管理工作,它涉及到教师的教学计划、学生的课程选择以及教室资源的合理分配。在信息化时代,利用PHP语言开发一个课程安排系统,可以提高管理效率,减少人为错误,并为学生提供便捷的课程查询服务。本文将围绕PHP语言,详细阐述如何实现一个简单的课程安排系统。

系统需求分析

在开始编写代码之前,我们需要明确系统的需求。以下是一个简单的课程安排系统需求分析:

1. 用户角色:

- 管理员:负责课程、教师、教室等信息的维护。

- 教师:查看自己的课程安排。

- 学生:查看自己的课程安排。

2. 功能模块:

- 课程管理:添加、修改、删除课程信息。

- 教师管理:添加、修改、删除教师信息。

- 教室管理:添加、修改、删除教室信息。

- 课程安排:自动生成课程表,并允许手动调整。

- 查询课程:学生和教师可以查询自己的课程安排。

3. 技术选型:

- 前端:HTML、CSS、JavaScript。

- 后端:PHP。

- 数据库:MySQL。

系统设计

数据库设计

我们需要设计数据库表结构。以下是几个主要表的设计:

1. 课程表(courses):

- id:课程ID(主键,自增)。

- name:课程名称。

- teacher_id:教师ID(外键)。

- classroom_id:教室ID(外键)。

2. 教师表(teachers):

- id:教师ID(主键,自增)。

- name:教师姓名。

3. 教室表(classrooms):

- id:教室ID(主键,自增)。

- name:教室名称。

4. 学生表(students):

- id:学生ID(主键,自增)。

- name:学生姓名。

5. 课程安排表(schedules):

- id:课程安排ID(主键,自增)。

- course_id:课程ID(外键)。

- student_id:学生ID(外键)。

- day:上课日期。

- start_time:上课时间。

- end_time:下课时间。

系统架构

系统采用MVC(Model-View-Controller)架构,将系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。

- 模型(Model):负责处理业务逻辑和数据访问。

- 视图(View):负责展示用户界面。

- 控制器(Controller):负责接收用户请求,调用模型和视图。

PHP代码实现

数据库连接

php

<?php


$servername = "localhost";


$username = "username";


$password = "password";


$dbname = "course_schedule";

// 创建连接


$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}


?>


课程管理

php

<?php


// 添加课程


function addCourse($name, $teacher_id, $classroom_id) {


global $conn;


$sql = "INSERT INTO courses (name, teacher_id, classroom_id) VALUES ('$name', '$teacher_id', '$classroom_id')";


if ($conn->query($sql) === TRUE) {


echo "新课程添加成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


}

// 修改课程


function updateCourse($id, $name, $teacher_id, $classroom_id) {


global $conn;


$sql = "UPDATE courses SET name='$name', teacher_id='$teacher_id', classroom_id='$classroom_id' WHERE id=$id";


if ($conn->query($sql) === TRUE) {


echo "课程更新成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


}

// 删除课程


function deleteCourse($id) {


global $conn;


$sql = "DELETE FROM courses WHERE id=$id";


if ($conn->query($sql) === TRUE) {


echo "课程删除成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


}


?>


课程安排

php

<?php


// 自动生成课程安排


function generateSchedule() {


global $conn;


// ... 生成课程安排逻辑


}

// 手动调整课程安排


function adjustSchedule($id, $day, $start_time, $end_time) {


global $conn;


$sql = "UPDATE schedules SET day='$day', start_time='$start_time', end_time='$end_time' WHERE id=$id";


if ($conn->query($sql) === TRUE) {


echo "课程安排调整成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


}


?>


查询课程

php

<?php


// 查询教师课程安排


function getTeacherSchedule($teacher_id) {


global $conn;


$sql = "SELECT FROM schedules WHERE teacher_id=$teacher_id";


$result = $conn->query($sql);


if ($result->num_rows > 0) {


while($row = $result->fetch_assoc()) {


echo "课程ID: " . $row["id"]. " - 课程名称: " . $row["name"]. " - 教室: " . $row["classroom_id"]. "<br>";


}


} else {


echo "0 结果";


}


}

// 查询学生课程安排


function getStudentSchedule($student_id) {


global $conn;


$sql = "SELECT FROM schedules WHERE student_id=$student_id";


$result = $conn->query($sql);


if ($result->num_rows > 0) {


while($row = $result->fetch_assoc()) {


echo "课程ID: " . $row["id"]. " - 课程名称: " . $row["name"]. " - 教室: " . $row["classroom_id"]. "<br>";


}


} else {


echo "0 结果";


}


}


?>


总结

本文通过PHP语言,详细介绍了如何实现一个简单的课程安排系统。在实际开发过程中,还需要考虑安全性、性能优化、用户体验等因素。随着项目的不断迭代,可以逐步增加更多功能,如课程评价、在线考试等,以满足不同用户的需求。