PHP HTML:mysql数据作为表行

时间:2016-01-15 07:03:11

标签: php html mysql arrays

请帮我解决我的问题。

我正在尝试填充一个表,但其中3行是基于我在数据库中的数据(它有点难以解释)样本在下面附加 enter image description here

enter image description here

这是我的查询

$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>

如果学生在每个学期都失败了,那么学生将在每个学期都会出现在他们的评论中,无论是预赛,中期,期末,都可以是预赛和期中考试,期中考试和期末考试,预赛考试和最终考试。 。那么这个表的正确查询和安排是什么?

1 个答案:

答案 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>