数据库 CMS,表结构 i. 学生:学号(非负整数,自增,主关键字),姓名(10个 字符),专业(20个字符) ii. 课程:课程号(非负整数,自增,主关键字),课程名 (30个字符),任课教师(10个字符) iii. 学生—课程:学号(非负整数),课程号(非负整数): c) 编写 PHP 网页,实现如下功能: i. 输入学号,以 Ajax 方式从服务器获取学生姓名和专业 ii. 如果该学生存在,点击查询按钮,可以表格方式显示其所 选的全部课程。 学生 课程学生—课程
时间: 2024-02-22 13:59:07 浏览: 55
思途旅游CMS数据库表结构字段说明开发文档(1)(1).docx
表可以通过以下 SQL 语句创建:
```
CREATE TABLE `学生` (
`学号` int(10) unsigned NOT NULL AUTO_INCREMENT,
`姓名` varchar(10) NOT NULL,
`专业` varchar(20) NOT NULL,
PRIMARY KEY (`学号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `课程` (
`课程号` int(10) unsigned NOT NULL AUTO_INCREMENT,
`课程名` varchar(30) NOT NULL,
`任课教师` varchar(10) NOT NULL,
PRIMARY KEY (`课程号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `学生-课程` (
`学号` int(10) unsigned NOT NULL,
`课程号` int(10) unsigned NOT NULL,
PRIMARY KEY (`学号`,`课程号`),
CONSTRAINT `fk_学号` FOREIGN KEY (`学号`) REFERENCES `学生` (`学号`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_课程号` FOREIGN KEY (`课程号`) REFERENCES `课程` (`课程号`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
下面是实现功能的 PHP 代码:
```php
<?php
// 连接数据库的代码
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 获取学生姓名和专业信息的代码
if(isset($_GET['学号'])) {
$学号 = $_GET['学号'];
$sql = "SELECT 姓名, 专业 FROM 学生 WHERE 学号=$学号";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$姓名 = $row["姓名"];
$专业 = $row["专业"];
echo "姓名: $姓名; 专业: $专业";
} else {
echo "该学生不存在";
}
}
// 显示选课信息的代码
if(isset($_POST['学号'])) {
$学号 = $_POST['学号'];
$sql = "SELECT 课程名, 任课教师 FROM 课程 WHERE 课程号 IN (
SELECT 课程号 FROM `学生-课程` WHERE 学号=$学号)";
$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["课程名"] . "</td><td>" . $row["任课教师"] . "</td></tr>";
}
echo "</table>";
} else {
echo "该学生未选择任何课程";
}
}
$conn->close();
?>
```
使用 Ajax 方式获取学生信息的代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询学生信息</title>
<script>
function showInfo(str) {
if (str == "") {
document.getElementById("info").innerHTML = "";
return;
}
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("info").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "getinfo.php?学号=" + str, true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<label for="学号">学号:</label>
<input type="text" id="学号" name="学号" onkeyup="showInfo(this.value)">
</form>
<div id="info"></div>
</body>
</html>
```
查询学生选课信息的代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询学生选课信息</title>
</head>
<body>
<form method="post" action="">
<label for="学号">学号:</label>
<input type="text" id="学号" name="学号">
<input type="submit" value="查询">
</form>
<div id="table">
<?php include 'getinfo.php'; ?>
</div>
</body>
</html>
```
阅读全文