gpt4 book ai didi

php - Foreach 循环未在 PHP 中执行

转载 作者:行者123 更新时间:2023-11-30 01:19:19 26 4
gpt4 key购买 nike

我正在尝试从数据库中提取数据,以在看起来像每周日历的表中显示预订情况。预留时间应采取“预留”类。由于某种原因,我的 foreach 循环似乎没有执行。按照现在编写代码的方式,表格中的每个数据条目应该只显示“test”。

$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 以便它们作为字符串存在,或者我是否能够将它们作为值使用。

感谢您的帮助。

最佳答案

第一次执行内部 foreach 循环后,mysql_fetch_array($schedule) 将始终返回 false。如果数据库没有任何周日 8:00 的计划,那么看起来没有任何循环运行。

尝试使用 mysql_data_seek($schedule, 0) ( mysql_data_seek Documentation ) 重置结果指针

关于php - Foreach 循环未在 PHP 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com