5.设计一个选课数据库 CMS a)逻辑模式 “学生—课程”表,依赖“学生”表格。 “学生—课程”表,依赖“课程”表格。 b)表结构 i.学生:学号(非负整数,自增,主关键字),姓名(10个字符),专业(20个字符) ii.课程:课程号(非负整数,自增,主关键字),课程名(30个字符),任课教师(10个字符) iii.学生—课程:学号(非负整数),课程号(非负整数): c)编写 PHP 网页,实现如下功能: i.输入学号,以 Ajax 方式从服务器获取学生姓名和专业 ii.如果该学生存在,点击查询按钮,可以表格方式显示其所选的全部课程。
时间: 2023-12-23 19:05:00 浏览: 62
好的,以下是选课数据库CMS的设计方案和PHP网页的实现方案:
1. 选课数据库CMS的设计方案
a) 逻辑模式
- 学生表格(student):学号(非负整数,自增,主关键字)、姓名(10个字符)、专业(20个字符)
- 课程表格(course):课程号(非负整数,自增,主关键字)、课程名(30个字符)、任课教师(10个字符)
- 学生-课程表格(student_course):学号(非负整数)、课程号(非负整数)
其中,学生-课程表格依赖学生表格和课程表格。
b) 表结构
- 学生表格(student):
| 字段名 | 数据类型 | 说明 |
| ------ | ---------------- | ------------------ |
| id | int(11) unsigned | 学号,自增,主键 |
| name | varchar(10) | 姓名,最长10个字符 |
| major | varchar(20) | 专业,最长20个字符 |
- 课程表格(course):
| 字段名 | 数据类型 | 说明 |
| ------ | ---------------- | ------------------ |
| id | int(11) unsigned | 课程号,自增,主键 |
| name | varchar(30) | 课程名,最长30个字符 |
| teacher| varchar(10) | 任课教师,最长10个字符 |
- 学生-课程表格(student_course):
| 字段名 | 数据类型 | 说明 |
| ------ | ---------------- | ---------------------------------- |
| student_id | int(11) unsigned | 学号,外键,关联学生表格的id字段 |
| course_id | int(11) unsigned | 课程号,外键,关联课程表格的id字段 |
c) 编写 PHP 网页,实现如下功能
i. 输入学号,以 Ajax 方式从服务器获取学生姓名和专业
- 在前端页面上添加一个输入框和一个按钮,用于输入学号和点击查询学生信息;
- 使用jQuery库来实现Ajax请求,向后端提供学号,后端查询学生表格,返回学生的姓名和专业;
- 在前端页面上显示学生的姓名和专业。
ii. 如果该学生存在,点击查询按钮,可以表格方式显示其所选的全部课程。
- 在前端页面上添加一个表格,用于显示该学生所选的全部课程;
- 使用jQuery库来实现Ajax请求,向后端提供学号,后端查询学生-课程表格和课程表格,返回该学生所选的全部课程;
- 在前端页面上将查询结果填充到表格中。
2. PHP网页的实现方案
以下是使用 PHP 和 MySQL 实现以上功能的示例代码:
a) 连接数据库
```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);
}
?>
```
b) 查询学生信息
```php
<?php
$student_id = $_POST['student_id'];
// 查询学生信息
$sql = "SELECT name, major FROM student WHERE id = " . $student_id;
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "姓名:" . $row["name"] . "<br>专业:" . $row["major"] . "<br>";
}
} else {
echo "0 结果";
}
?>
```
c) 查询学生所选的全部课程
```php
<?php
$student_id = $_POST['student_id'];
// 查询学生所选的全部课程
$sql = "SELECT course.name, course.teacher FROM student_course, course WHERE student_course.student_id = " . $student_id . " AND student_course.course_id = course.id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
echo "<table><tr><th>课程名</th><th>任课教师</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["name"] . "</td><td>" . $row["teacher"] . "</td></tr>";
}
echo "</table>";
} else {
echo "0 结果";
}
?>
```
以上代码只是示例,实际应用中可能需要更多的安全性和错误处理机制。
阅读全文