如何显示来自MySQL

时间:2016-09-13 11:11:10

标签: php mysql

我创建了一个在线时间表,它工作正常,用户或我可以通过使用一些数据添加新的时间表行,我的最终结果就像。

这是我的SQL查询(请不要警告我使用MySQLi或PDO,我知道它们,但这是一个私有应用程序,我可以编写不安全的代码。)

 $date = date("d/m/y");
    $sql = "SELECT * FROM `s_timetable` WHERE `date` = '$date'";
    $res = mysql_query($sql) or die(mysql_error());

     while ($fetch_data = mysql_fetch_array($res)) {
        echo "<tr>";
        echo "<td>" .$fetch_data['batch_info']. "</td>";
        echo "<td>" .$fetch_data['class_info']. "</td>";
        echo "<td>" .$fetch_data['subject_info']. "</td>";
        echo "<td>" .$fetch_data['teacher_info'].  "</td>";
        echo "</tr>";
     }
   ?>

但是在查询到数据库后,我得到了大量具有相同值的结果,如何将它们显示为组。
示例:
LDC batch - 08:09 - science - Ashok B.
LDC batch - 09-10 - English - Jaky
LDC batch - 10-11 - Maths - Bella

现在我如何将这些数据显示为表格,标题为LDC batch,重复一遍,然后time subjectteacher信息与表格一起显示。< / p>

1 个答案:

答案 0 :(得分:4)

此处的一个选项是提供一个3列HTML表格,其中包含每个批次的时间,主题和教师数据。当批次类型在结果集中更改时,可以将新行打印为标题。

$header = "";
while ($fetch_data = mysql_fetch_array($res)) {
    if ($header = "" || $header != $fetch_data['batch_info']) {
        echo "<tr><td colspan=\"3\">".$fetch_data['batch_info']."</td></tr>";
        $header = $fetch_data['batch_info'];
    }
    echo "<tr>";
    echo "<td>" .$fetch_data['class_info']. "</td>";
    echo "<td>" .$fetch_data['subject_info']. "</td>";
    echo "<td>" .$fetch_data['teacher_info'].  "</td>";
    echo "</tr>";
 }

<强>更新

正如@apokryfos指出的那样,您应该通过batch_info列订购结果集,以确保属于同一批次的记录始终相邻。因此您的查询可能会变为:

SELECT *
FROM s_timetable
WHERE date = '$date'
ORDER BY batch_info