【发布时间】:2018-05-17 00:08:13
【问题描述】:
我在学生表中有这些数据:
stu_id stu_name stu_exam stu_exam_year stu_mark stu_grade stu_est_mark stu_est_grade
111 Alice First 2015 80 A
111 Alice Mid 2015 75 B
111 Alice Final 2015 65 B
222 Frankline First 2015 75 B
222 Frankline Mid 2015 60 B
222 Frankline Final 2015 50 C
我想以表格形式输出数据,如下所示,其中估计成绩 = 每次考试的总分 / 满分的总分 * 100
No ID Name First-term Exam Mid-term Exam Final Exam Estimated
Mark | Grade Mark | Grade Mark | Grade Mark | Grade
1 111 Alice 80 A 75 B 65 B 73 B
2 222 Frankline 75 B 60 B 50 C 62 B
我尝试使用这个 SELECT 语句
<?php
$no = 0;
query = "SELECT * FROM student GROUP BY stu_id;"
$result_set = mysqli_query($con, $query);
while( $row = mysqli_fetch_array($result_set)){
$no++;
?>
并在下面应用一些条件
<td><?php echo $no; ?></td>
<td><?php echo $row['stu_name']; ?></td>
<!--This is for First-term -->
<?php if(($row['stu_exam'] == "First"){ ?>
<td><center><?php echo $row['stu_mark']; ?></center></td>
<td><center><?php echo $row['stu_grade']; ?></center></td>
<?php }
else {?>
<td><center></center></td>
<td><center></center></td>
<?php } ?>
<!--This is for Mid-term -->
<?php if(($row['stu_exam'] == "Mid"){ ?>
<td><center><?php echo $row['stu_mark']; ?></center></td>
<td><center><?php echo $row['stu_grade']; ?></center></td>
<?php }
else {?>
<td><center></center></td>
<td><center></center></td>
<?php } ?>
<!--This is for Final -->
<?php if(($row['stu_exam'] == "Final"){ ?>
<td><center><?php echo $row['stu_mark']; ?></center></td>
<td><center><?php echo $row['stu_grade']; ?></center></td>
<?php }
else {?>
<td><center></center></td>
<td><center></center></td>
<?php } ?>
但查询只是读取每个stu_id表中行的第一个列表并输出如下
No ID Name First-term Exam Mid-term Exam Final Exam Estimated
Mark | Grade Mark | Grade Mark | Grade Mark | Grade
1 111 Alice 80 A
2 222 Frankline 75 B
为什么?我想计算估计分数(平均),其中每门考试的所有分数之和除以所有考试的总分数。如何生成这些值并将生成的值更新到学生表中的 stu_est_mark 和 stu_est_grade 属性。
【问题讨论】:
-
分组依据折叠所有行。这可能有用stackoverflow.com/questions/33351330/php-mysqli-group-by
-
@Chhitij 但我不应该按它分组吗?因为我需要折叠 3 行才能变成 1 行吗?如果我误解了基本内容,我很抱歉.. 我是这个编程世界的新手..
-
Group By 只是将行折叠成一个。我想你指的是加入和分组
-
在我上面的例子中..我应该如何分组和加入他们?
-
我已经编辑了我的答案。我犯了一个错误。对此感到抱歉。将第一个变量名称更改为 $q1 而不是 $q2。它会工作
标签: php database mysqli html-table