设计一个选课数据库 CMS a)逻辑模式 “学生—课程”表,依赖“学生”表格。 “学生—课程”表,依赖“课程”表格。 b)表结构 i.学生:学号(非负整数,自增,主关键字),姓名(10个字符),专业(20个字符) ii.课程:课程号(非负整数,自增,主关键字),课程名(30个字符),任课教师(10个字符) iii.学生—课程:学号(非负整数),课程号(非负整数): c)编写 PHP 网页,实现如下功能: i.输入学号,以 Ajax 方式从服务器获取学生姓名和专业 ii.如果该学生存在,点击查询按钮,可以表格方式显示其所选的全部课程。
时间: 2023-12-01 21:04:54 浏览: 67
【学生选课信息管理系统】数据库课程设计源代码+报告(MySQL+Java)
5星 · 资源好评率100%
好的,以下是选课数据库 CMS 的设计和 PHP 网页的实现:
1. 数据库设计
逻辑模式:
学生—课程表,依赖学生表格和课程表格。
表结构:
i. 学生表格:
- 学号(非负整数,自增,主关键字)
- 姓名(10个字符)
- 专业(20个字符)
ii. 课程表格:
- 课程号(非负整数,自增,主关键字)
- 课程名(30个字符)
- 任课教师(10个字符)
iii. 学生—课程表格:
- 学号(非负整数)
- 课程号(非负整数)
2. PHP 网页实现
首先,创建一个名为 index.php 的文件,用于用户输入学号查询学生信息和所选课程信息。在该文件中,需要使用 Ajax 技术从服务器获取学生姓名和专业。
代码如下:
```php
<!DOCTYPE html>
<html>
<head>
<title>选课数据库 CMS</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btnQuery").click(function(){
var studentId = $("#txtStudentId").val();
$.ajax({
url: "getStudentInfo.php",
type: "POST",
data: {studentId: studentId},
dataType: "json",
success: function(data){
if(data.status == "success"){
$("#lblStudentName").text(data.studentName);
$("#lblStudentMajor").text(data.studentMajor);
$("#divCourseList").html(data.courseTable);
}
else{
alert(data.message);
}
},
error: function(){
alert("服务器错误!");
}
});
});
});
</script>
</head>
<body>
<h1>选课数据库 CMS</h1>
<label for="txtStudentId">学号:</label>
<input type="text" id="txtStudentId" name="txtStudentId">
<button id="btnQuery">查询</button>
<br>
<label for="lblStudentName">姓名:</label>
<span id="lblStudentName"></span>
<br>
<label for="lblStudentMajor">专业:</label>
<span id="lblStudentMajor"></span>
<br>
<div id="divCourseList"></div>
</body>
</html>
```
在该文件中,我们引用了 jQuery 库,并使用 Ajax 技术来获取学生信息和课程信息。当用户点击查询按钮时,会向 getStudentInfo.php 文件发送 POST 请求,同时将学号作为参数传递给服务器。服务器返回一个 JSON 对象,包含学生姓名、专业和所选课程信息。如果返回的状态为 success,则将学生姓名、专业和课程信息显示在网页上,否则将显示错误信息。
接下来,创建一个名为 getStudentInfo.php 的文件,用于查询学生信息和所选课程信息。该文件需要连接数据库,并查询学生和课程信息。
代码如下:
```php
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取学号
$studentId = $_POST["studentId"];
// 查询学生信息
$sql = "SELECT * FROM student WHERE student_id = $studentId";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$studentName = $row["student_name"];
$studentMajor = $row["student_major"];
// 查询所选课程
$sql = "SELECT course.course_name, course.teacher_name FROM course INNER JOIN student_course ON course.course_id = student_course.course_id WHERE student_course.student_id = $studentId";
$result = $conn->query($sql);
// 构造课程信息表格
$courseTable = "<table><tr><th>课程名</th><th>任课教师</th></tr>";
while($row = $result->fetch_assoc()) {
$courseName = $row["course_name"];
$teacherName = $row["teacher_name"];
$courseTable .= "<tr><td>$courseName</td><td>$teacherName</td></tr>";
}
$courseTable .= "</table>";
// 返回 JSON 对象
$data = array(
"status" => "success",
"studentName" => $studentName,
"studentMajor" => $studentMajor,
"courseTable" => $courseTable
);
echo json_encode($data);
}
else{
// 返回错误信息
$data = array(
"status" => "error",
"message" => "学号不存在!"
);
echo json_encode($data);
}
$conn->close();
?>
```
在该文件中,我们首先连接数据库,然后获取客户端传递的学号参数。接着,查询学生信息和所选课程信息,并构造课程信息表格。最后,返回一个 JSON 对象,包含学生姓名、专业和课程信息。
需要注意的是,我们使用了 INNER JOIN 语句来连接课程表格和学生—课程表格,以获取学生所选的全部课程信息。
到这里,选课数据库 CMS 的设计和 PHP 网页的实现就完成了。用户可以在网页上输入学号,然后点击查询按钮,即可获取学生姓名、专业和所选课程信息。
阅读全文