1

这是一个时间表,它的作用是显示前一天的时间表以及谁预订了每个时段(这是一个广播电台。)

目前它按时间顺序显示谁预订了每个时段,但我希望它在每个结果旁边显示时间。查询输出 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>";
}



?> 

你能帮我吗?

4

2 回答 2

1

我认为我们都在努力解决一个非常简单的问题。您已经SELECT *在查询中使用,因此您已经从表中获取所有三列。所以现在,您需要做的就是在表格的每一行中添加另一个单元格。

echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";

为了确保您以正确的顺序获取行,您应该ORDER BY在查询中添加一个:

SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time

如果您不指定ORDER BY子句,则无法保证您将按任何特定顺序获得结果。

最后一件事,你在行中循环了两次,这是不必要的。摆脱 foreach 循环,将 echo 直接放在 while 循环内。

于 2012-04-11T18:51:09.813 回答
0

试试这个:

foreach ($rowset as $row) {
echo "<tr><td>" . htmlspecialchars($row['username']) . htmlspecialchars($row['time'])"</td></tr>";
于 2012-04-11T18:50:35.330 回答