我正在尝试从数据库中提取数据以在看起来像周历的表中显示预订。保留时间应采取“保留”类。出于某种原因,我的 foreach 循环似乎没有执行。现在编写代码的方式,表应该只是读取每个数据条目的“测试”。
$schedule = mysql_query ("SELECT * FROM reservation WHERE location_id = '$reserve' AND year = '$year' AND quarter = '$quarter' AND date_note = 'Quarter' ORDER BY hour_start ASC");
foreach ($time as $hour) {
$endhour = $hour + 30;
foreach ($week as $day) {
while ($sched_table = mysql_fetch_array($schedule)) {
if ($sched_table['day_of_week'] == $day) {
if ($sched_table['hour_start'] == "") {
echo "<td>test</td>";
} elseif ($sched_table['hour_start'] >= $hour && $sched_table['hour_start'] < $endhour) {
echo "<td class='reserve'>test</td>";
} else {
echo "<td>test</td>";
}
}
}
}
}
上面的所有变量都在前面定义为:
$reserve = $_POST['reserve'];
$year = 2013;
$quarter = "Fall";
$week = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$time = array();
for ($x = 800; $x < 2001; $x += 100) {
$y = $x + 30;
array_push($time, $x, $y);
}
一些快速说明——我意识到在 foreach 循环之前还没有设置。我想在确定每一行的开始和结束位置之前确保循环正在运行,所以我只放了一个 echo ""; 并回显“”;在整个语句的开头和结尾。这应该列出一长串“测试”,但没有显示任何内容。
数据库将开始时间存储为“0900”而不是“900”。这能解释为什么循环没有执行吗?如果是这种情况,我是否必须重新定义 $time 以便它们作为字符串存在,或者我是否能够将它们作为一个值使用。
谢谢您的帮助。