3.录入3条记录如下 id name math english 1 张三 80 90 2 李四 87 95 3 王五 90 100 根据以上数据编写代码,计算如下结果: 1. 计算班级的math和english的平均分 2. 计算班级的math最高分 3. 计算班级的english的最低分 4. 得到math+english总分的最高分是哪个同学的姓名并用php代码写出
时间: 2024-03-08 16:51:16 浏览: 32
好的,针对你的问题,我来编写以下代码计算班级的平均分、最高分、最低分以及最高总分的同学姓名:
```php
<?php
// 连接mysql数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "lesson";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 计算班级的math和english的平均分
$sql = "SELECT AVG(math) AS avg_math, AVG(english) AS avg_english FROM student";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$avg_math = $row["avg_math"];
$avg_english = $row["avg_english"];
}
echo "班级的平均math分为:" . $avg_math . "<br>";
echo "班级的平均english分为:" . $avg_english . "<br>";
} else {
echo "没有找到相关记录";
}
// 计算班级的math最高分
$sql = "SELECT MAX(math) AS max_math FROM student";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$max_math = $row["max_math"];
}
echo "班级的最高math分为:" . $max_math . "<br>";
} else {
echo "没有找到相关记录";
}
// 计算班级的english的最低分
$sql = "SELECT MIN(english) AS min_english FROM student";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$min_english = $row["min_english"];
}
echo "班级的最低english分为:" . $min_english . "<br>";
} else {
echo "没有找到相关记录";
}
// 得到math+english总分的最高分是哪个同学的姓名
$sql = "SELECT name, math+english AS total_score FROM student ORDER BY total_score DESC LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$name = $row["name"];
$total_score = $row["total_score"];
}
echo "math+english总分的最高分是:" . $name . ",分数为:" . $total_score;
} else {
echo "没有找到相关记录";
}
$conn->close();
?>
```
以上代码中,我们通过连接mysql数据库,然后分别执行了四个SQL语句,计算了班级的平均分、最高分、最低分以及总分的最高分所对应的同学姓名和分数,并将结果输出到网页中。