当前位置:首页 > PHP

php实现选课

2026-02-28 16:57:02PHP

实现选课系统的关键步骤

数据库设计 创建学生表(students)、课程表(courses)和选课关系表(student_courses)。学生表存储学生信息,课程表存储课程信息,选课关系表记录学生与课程的关联。

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

CREATE TABLE courses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    credit INT
);

CREATE TABLE student_courses (
    student_id INT,
    course_id INT,
    PRIMARY KEY (student_id, course_id),
    FOREIGN KEY (student_id) REFERENCES students(id),
    FOREIGN KEY (course_id) REFERENCES courses(id)
);

连接数据库 使用PDO或MySQLi连接数据库。以下是PDO连接示例:

$dsn = 'mysql:host=localhost;dbname=course_selection';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}

选课功能实现 创建选课表单和处理逻辑。表单显示可选课程列表,提交后处理选课请求。

// 显示可选课程
$stmt = $pdo->query("SELECT * FROM courses");
$courses = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 处理选课提交
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['course_id'])) {
    $studentId = $_SESSION['student_id']; // 假设学生已登录
    $courseId = $_POST['course_id'];

    try {
        $stmt = $pdo->prepare("INSERT INTO student_courses (student_id, course_id) VALUES (?, ?)");
        $stmt->execute([$studentId, $courseId]);
        echo "选课成功";
    } catch (PDOException $e) {
        echo "选课失败: " . $e->getMessage();
    }
}

选课记录查询 查询学生已选课程,展示选课结果。

$studentId = $_SESSION['student_id'];
$stmt = $pdo->prepare("
    SELECT c.* 
    FROM courses c
    JOIN student_courses sc ON c.id = sc.course_id
    WHERE sc.student_id = ?
");
$stmt->execute([$studentId]);
$selectedCourses = $stmt->fetchAll(PDO::FETCH_ASSOC);

退课功能实现 添加退课选项,允许学生取消已选课程。

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['drop_course_id'])) {
    $studentId = $_SESSION['student_id'];
    $courseId = $_POST['drop_course_id'];

    try {
        $stmt = $pdo->prepare("DELETE FROM student_courses WHERE student_id = ? AND course_id = ?");
        $stmt->execute([$studentId, $courseId]);
        echo "退课成功";
    } catch (PDOException $e) {
        echo "退课失败: " . $e->getMessage();
    }
}

安全注意事项

使用预处理语句防止SQL注入。对用户输入进行验证和过滤。实现用户认证确保只有登录学生能选课。考虑添加选课时间限制和学分上限等业务规则。

php实现选课

标签: php
分享给朋友:

相关文章

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $…