用PHP代码实现学生选课管理系统
时间: 2024-04-25 15:26:00 浏览: 5
好的,我可以为您提供一个简单的PHP代码实现学生选课管理系统的示例。以下是一些基本功能:
1. 学生可以注册账户,登录系统。
2. 学生可以浏览可选的课程列表,并选择感兴趣的课程。
3. 管理员可以添加、删除和编辑课程列表。
4. 学生可以查看他们已经选择的课程,并取消选择。
5. 管理员可以查看每门课程的选课情况,包括已经选择该课程的学生列表。
以下是实现这些功能的PHP代码示例:
1. 注册账户和登录系统
```
//连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
//注册账户
if(isset($_POST['register'])){
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
mysqli_query($conn, $sql);
}
//登录系统
if(isset($_POST['login'])){
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 1){
//登录成功,跳转到主页
header("location: index.php");
} else {
echo "用户名或密码错误!";
}
}
```
2. 浏览可选的课程列表和选择课程
```
//获取可选的课程列表
$sql = "SELECT * FROM courses";
$result = mysqli_query($conn, $sql);
//显示课程列表
while($row = mysqli_fetch_assoc($result)){
echo "<p>".$row['course_name']."<br>".$row['course_description']."<br>";
//判断当前用户是否已经选择该课程
$sql2 = "SELECT * FROM selections WHERE user_id=$user_id AND course_id=".$row['course_id'];
$result2 = mysqli_query($conn, $sql2);
if(mysqli_num_rows($result2) == 0){
echo "<a href='select.php?course_id=".$row['course_id']."'>选择</a></p>";
} else {
echo "已选择</p>";
}
}
//选择课程
if(isset($_GET['course_id'])){
$course_id = $_GET['course_id'];
$sql = "INSERT INTO selections (user_id, course_id) VALUES ($user_id, $course_id)";
mysqli_query($conn, $sql);
header("location: index.php");
}
```
3. 添加、删除和编辑课程列表
```
//添加课程
if(isset($_POST['add'])){
$course_name = mysqli_real_escape_string($conn, $_POST['course_name']);
$course_description = mysqli_real_escape_string($conn, $_POST['course_description']);
$sql = "INSERT INTO courses (course_name, course_description) VALUES ('$course_name', '$course_description')";
mysqli_query($conn, $sql);
}
//删除课程
if(isset($_GET['delete'])){
$course_id = $_GET['delete'];
$sql = "DELETE FROM courses WHERE course_id=$course_id";
mysqli_query($conn, $sql);
}
//编辑课程
if(isset($_POST['edit'])){
$course_id = mysqli_real_escape_string($conn, $_POST['course_id']);
$course_name = mysqli_real_escape_string($conn, $_POST['course_name']);
$course_description = mysqli_real_escape_string($conn, $_POST['course_description']);
$sql = "UPDATE courses SET course_name='$course_name', course_description='$course_description' WHERE course_id=$course_id";
mysqli_query($conn, $sql);
}
```
4. 查看已选择的课程和取消选择
```
//获取已选择的课程列表
$sql = "SELECT courses.course_name, courses.course_description FROM selections JOIN courses ON selections.course_id=courses.course_id WHERE selections.user_id=$user_id";
$result = mysqli_query($conn, $sql);
//显示已选择的课程列表
while($row = mysqli_fetch_assoc($result)){
echo "<p>".$row['course_name']."<br>".$row['course_description']."<br>";
echo "<a href='cancel.php?course_name=".$row['course_name']."'>取消选择</a></p>";
}
//取消选择
if(isset($_GET['course_name'])){
$course_name = $_GET['course_name'];
$sql = "DELETE FROM selections WHERE user_id=$user_id AND course_id=(SELECT course_id FROM courses WHERE course_name='$course_name')";
mysqli_query($conn, $sql);
header("location: index.php");
}
```
5. 查看每门课程的选课情况
```
//获取每门课程的选课情况
$sql = "SELECT courses.course_name, COUNT(selections.user_id) AS num_students FROM selections JOIN courses ON selections.course_id=courses.course_id GROUP BY courses.course_id";
$result = mysqli_query($conn, $sql);
//显示每门课程的选课情况
while($row = mysqli_fetch_assoc($result)){
echo "<p>".$row['course_name'].": ".$row['num_students']."人选择</p>";
}
```
这些代码只是一个简单的示例,可能需要根据您的具体需求进行修改。希望对您有所帮助!