请帮我解决我的问题。
我正在尝试填充一个表,但其中3行是基于我在数据库中的数据(它有点难以解释)样本在下面附加
这是我的查询
$query1 = mysql_query("SELECT * FROM tb_grade WHERE instructor_id = '$inst_id' AND description = '$desc' AND remark = '$remark' AND term = '$term' ORDER BY stud_name ASC");
这是我的html表
<table class="table table-bordered table-condensed" align="center" bordercolor="#CCCCCC">
<tr bgcolor="#009933">
<td align="center" style="color:#FFF;">Name</td>
<td align="center" style="color:#FFF;">Course</td>
<td align="center" style="color:#FFF;">Prelim</td>
<td align="center" style="color:#FFF;">Midterm</td>
<td align="center" style="color:#FFF;">Final</td>
<td align="center" style="color:#FFF;">Remark</td>
</tr>
<?php
while($result= mysql_fetch_array($query1)){
echo "<tr>";
echo "<td class=\"text-center\">".$result['stud_name']."</td>";
echo "<td class=\"text-center\">"."</td>";
echo "<td class=\"text-center\">".$result['remark']."</td>";
echo "<td class=\"text-center\">"."</td>";
echo "<td class=\"text-center\">"."</td>";
echo "<td class=\"text-center\">"."</td>";
}
?>
</table>
如果学生在每个学期都失败了,那么学生将在每个学期都会出现在他们的评论中,无论是预赛,中期,期末,都可以是预赛和期中考试,期中考试和期末考试,预赛考试和最终考试。 。那么这个表的正确查询和安排是什么?
答案 0 :(得分:1)
希望我理解你的要求......但这就是我对你的要求。 基本上,您希望在呈现HTML之前获取结果并重新映射数据。如果2个学生的名字相同,那么我发布的内容将无效,这就是为什么我在评论中询问了学生ID的原因 - 它是一个练习,你可以将其更改为使用学生ID。
<?
$query1 = mysql_query("SELECT * FROM tb_grade WHERE instructor_id = '$inst_id' AND description = '$desc' AND remark = '$remark' AND term = '$term' ORDER BY stud_name ASC");
$students = array();
while ($row=mysql_fetch_assoc($query1)) {
if (!isset($students[$row['stud_name']])) {
$students[ $row['stud_name'] ] = array();
}
$students[ $row['stud_name'] ][ $row['term'] ] = $row['remark'];
}
?>
<table class="table table-bordered table-condensed" align="center" bordercolor="#CCCCCC">
<tr bgcolor="#009933">
<td align="center" style="color:#FFF;">Name</td>
<td align="center" style="color:#FFF;">Course</td>
<td align="center" style="color:#FFF;">Prelim</td>
<td align="center" style="color:#FFF;">Midterm</td>
<td align="center" style="color:#FFF;">Final</td>
<td align="center" style="color:#FFF;">Remark</td>
<?
foreach ($students as $name => $terms) {
echo "<tr>";
echo "<td class=\"text-center\">".$name."</td>";
echo "<td class=\"text-center\">?</td>";
echo "<td class=\"text-center\">".$terms['Prelim']."</td>";
echo "<td class=\"text-center\">".$terms['Midterm']."</td>";
echo "<td class=\"text-center\">".$terms['Final']."</td>";
echo "<td class=\"text-center\">?</td>";
echo "</tr>";
}
?>
</table>