我创建了一个在线时间表,它运行良好,用户或我可以使用一些数据添加新的时刻表行,我的最终结果如下。
这是我的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 subject和teacher信息。
发布于 2016-09-13 11:17:05
这里的一个选项是提供一个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_infohttps://stackoverflow.com/questions/39468584
复制相似问题