这是一个时间表,它的作用是显示前一天的时间表以及谁预定了每个时段(这是针对广播电台的。)
目前,它显示谁按时间顺序预订了每个时段,但是我想说每个结果旁边的时间。查询输出24行(从午夜到23:00),我想说的是每个插槽旁边的(00:00,01:00,02:00,03:00… 21:00,22 :00,依此类推。)
这是我当前的代码:
<?php include("../config.php"); #// Timetable Clearup Variabls $yesterday = strtotime('yesterday'); $yesterdow = date('l',$yesterday); echo "<table width=\"580px\" class=\"board\" border=\>"; $order = "SELECT * FROM timetable WHERE day = '$yesterdow'"; $result = mysql_query($order); // Error checking if (!$result) { // output error, take other action } else { while ($row=mysql_fetch_array($result)){ // Append all results onto an array $rowset[] = $row; } } foreach ($rowset as $row) { echo "<tr><td>" . htmlspecialchars($row['username']) . "</td></tr>"; } ?>
你能帮我吗?
我认为我们都在努力解决一个非常简单的问题。您已经SELECT *在查询中使用它,因此您已经从表中获取所有三列。因此,现在您要做的就是向表的每一行添加另一个单元格。
SELECT *
echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";
为了确保以正确的顺序获取行,您应该ORDER BY在查询中添加一个:
ORDER BY
SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time
如果不指定ORDER BY子句,则不能保证将以任何特定顺序获得结果。
最后一件事,您不必要地遍历了两次行。摆脱foreach循环,然后将echo直接放入while循环内。