设计一个选课数据库 CMS a)逻辑模式 “学生—课程”表,依赖“学生”表格。 “学生—课程”表,依赖“课程”表格。 b)表结构 i.学生:学号(非负整数,自增,主关键字),姓名(10个字符),专业(20个字符) ii.课程:课程号(非负整数,自增,主关键字),课程名(30个字符),任课教师(10个字符) iii.学生—课程:学号(非负整数),课程号(非负整数): c)编写 PHP 网页,实现如下功能: i.输入学号,以 Ajax 方式从服务器获取学生姓名和专业 ii.如果该学生存在,点击查询按钮,可以表格方式显示其所选的全部课程。
时间: 2023-12-01 10:04:54 浏览: 42
【学生选课信息管理系统】数据库课程设计源代码+报告(MySQL+Java)
5星 · 资源好评率100%
好的,以下是选课数据库 CMS 的设计和实现:
1. 数据库设计
根据题目要求,我们需要设计三个表格:学生表格、课程表格和学生-课程表格。
学生表格包含学号、姓名和专业,其中学号作为主关键字,自增;
课程表格包含课程号、课程名称和任课教师,其中课程号作为主关键字,自增;
学生-课程表格包含学号和课程号,作为外键分别引用学生表格和课程表格。
2. PHP实现
在PHP中,使用mysqli扩展连接MySQL数据库,具体代码如下:
```php
// 连接数据库
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 检查连接是否成功
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
// 设置编码
$mysqli->set_charset("utf8");
```
接下来,我们实现查询学生姓名和专业的功能,代码如下:
```php
// 获取学生姓名和专业
$stmt = $mysqli->prepare("SELECT name, major FROM students WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($name, $major);
if ($stmt->fetch()) {
echo "姓名:".$name."<br>";
echo "专业:".$major."<br>";
} else {
echo "该学生不存在!";
}
$stmt->close();
```
最后,我们实现根据学号查询该学生选择的全部课程的功能,代码如下:
```php
// 获取该学生选择的全部课程
$stmt = $mysqli->prepare("SELECT courses.name, courses.teacher FROM courses JOIN student_course ON courses.id = student_course.course_id WHERE student_course.student_id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($course_name, $teacher);
echo "<table>";
echo "<tr><th>课程名称</th><th>任课教师</th></tr>";
while ($stmt->fetch()) {
echo "<tr><td>".$course_name."</td><td>".$teacher."</td></tr>";
}
echo "</table>";
$stmt->close();
```
以上就是选课数据库 CMS 的设计和实现。
阅读全文