帮我用php建造一个班级管理系统包含数据库中的学生表课程表选课表
时间: 2024-03-14 15:49:29 浏览: 70
好的,这个任务我可以尝试帮你完成。不过在开始之前,我需要确认一下你的数据库已经创建好了,里面包含三张表:学生表、课程表、选课表。每张表的字段和数据类型也应该已经确定好了。
如果你的数据库还没有创建好,请先创建好数据库和表,并确保表中已经添加了一些示例数据。当然,为了保护你的数据安全,我不会在这里给出具体的数据库连接信息和密码,你需要自行修改为你的信息。
现在,让我们开始建造班级管理系统。
首先,我们需要创建一个 index.php 文件作为入口文件。在这个文件中,我们需要连接数据库,并建立三个类对应三张表:Student、Course、Selection。每个类中需要包含增删改查的方法,以及其他需要的方法。下面是示例代码:
```php
<?php
// 连接数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 学生类
class Student {
private $id;
private $name;
private $age;
private $gender;
// 构造函数
function __construct($id, $name, $age, $gender) {
$this->id = $id;
$this->name = $name;
$this->age = $age;
$this->gender = $gender;
}
// 添加学生
function add() {
global $conn;
$sql = "INSERT INTO students (id, name, age, gender) VALUES ('$this->id', '$this->name', '$this->age', '$this->gender')";
if ($conn->query($sql) === TRUE) {
echo "New student added successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 修改学生信息
function update() {
global $conn;
$sql = "UPDATE students SET name='$this->name', age='$this->age', gender='$this->gender' WHERE id='$this->id'";
if ($conn->query($sql) === TRUE) {
echo "Student updated successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 删除学生
function delete() {
global $conn;
$sql = "DELETE FROM students WHERE id='$this->id'";
if ($conn->query($sql) === TRUE) {
echo "Student deleted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 查询学生
function select() {
global $conn;
$sql = "SELECT * FROM students WHERE id='$this->id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Age: " . $row["age"] . " - Gender: " . $row["gender"];
} else {
echo "0 results";
}
}
}
// 课程类
class Course {
private $id;
private $name;
private $teacher;
private $credit;
// 构造函数
function __construct($id, $name, $teacher, $credit) {
$this->id = $id;
$this->name = $name;
$this->teacher = $teacher;
$this->credit = $credit;
}
// 添加课程
function add() {
global $conn;
$sql = "INSERT INTO courses (id, name, teacher, credit) VALUES ('$this->id', '$this->name', '$this->teacher', '$this->credit')";
if ($conn->query($sql) === TRUE) {
echo "New course added successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 修改课程信息
function update() {
global $conn;
$sql = "UPDATE courses SET name='$this->name', teacher='$this->teacher', credit='$this->credit' WHERE id='$this->id'";
if ($conn->query($sql) === TRUE) {
echo "Course updated successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 删除课程
function delete() {
global $conn;
$sql = "DELETE FROM courses WHERE id='$this->id'";
if ($conn->query($sql) === TRUE) {
echo "Course deleted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 查询课程
function select() {
global $conn;
$sql = "SELECT * FROM courses WHERE id='$this->id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Teacher: " . $row["teacher"] . " - Credit: " . $row["credit"];
} else {
echo "0 results";
}
}
}
// 选课类
class Selection {
private $student_id;
private $course_id;
// 构造函数
function __construct($student_id, $course_id) {
$this->student_id = $student_id;
$this->course_id = $course_id;
}
// 选课
function add() {
global $conn;
$sql = "INSERT INTO selections (student_id, course_id) VALUES ('$this->student_id', '$this->course_id')";
if ($conn->query($sql) === TRUE) {
echo "Selection added successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 退课
function delete() {
global $conn;
$sql = "DELETE FROM selections WHERE student_id='$this->student_id' AND course_id='$this->course_id'";
if ($conn->query($sql) === TRUE) {
echo "Selection deleted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 查询选课信息
function select() {
global $conn;
$sql = "SELECT * FROM selections WHERE student_id='$this->student_id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "Student id: " . $row["student_id"] . " - Course id: " . $row["course_id"] . "<br>";
}
} else {
echo "0 results";
}
}
}
?>
```
上面的代码中,我们使用了 mysqli 连接数据库,并定义了三个类:Student、Course、Selection。每个类中都有一个构造函数,用于初始化类的属性;以及增删改查等方法。这些方法可以通过创建类的实例来使用。
接下来,我们可以在 index.php 中添加一些简单的测试代码,来测试我们的班级管理系统是否正常工作。以下是示例代码:
```php
<?php
// 添加学生
$student = new Student("1001", "张三", 18, "男");
$student->add();
// 修改学生信息
$student = new Student("1001", "张三", 20, "男");
$student->update();
// 删除学生
$student = new Student("1001", "", 0, "");
$student->delete();
// 查询学生
$student = new Student("1002", "", 0, "");
$student->select();
// 添加课程
$course = new Course("C001", "PHP开发", "张老师", 3);
$course->add();
// 修改课程信息
$course = new Course("C001", "PHP开发", "李老师", 4);
$course->update();
// 删除课程
$course = new Course("C001", "", "", 0);
$course->delete();
// 查询课程
$course = new Course("C002", "", "", 0);
$course->select();
// 选课
$selection = new Selection("1002", "C002");
$selection->add();
// 退课
$selection = new Selection("1002", "C002");
$selection->delete();
// 查询选课信息
$selection = new Selection("1002", "");
$selection->select();
?>
```
上面的代码中,我们分别测试了添加学生、修改学生信息、删除学生、查询学生、添加课程、修改课程信息、删除课程、查询课程、选课、退课、查询选课信息等操作。
当然,上面的代码只是一个示例,实际使用时还需要进行优化和改进。比如,可以将增删改查等方法封装成一个公共类,然后在每个类中继承这个公共类,这样可以避免重复代码。另外,还需要考虑数据安全、用户权限、界面设计等问题。
阅读全文