嘿,大家好。我试图用三十分钟的时间间隔打印一份时间表,并想要查询一个数据库以获取当时发生的任何事情。如果我手动输入时间(小时,分钟,上午/下午(月,年,日工作))我得到事件。只是当我让查询从循环中抽出时间,这不起作用。有任何想法吗?循环中的SQL查询循环中
$day = date('d');
$year = date('Y');
$month = date('m');
$start = mktime(0,0,0);
$thing_query="SELECT thing FROM things WHERE day='$day' AND month='$month' AND year='$year' AND hour='$hour' AND minute='$minute' AND ampm='$am'";
$result=mysql_query($thing_query);
for($min = 0; $min < 24 * 60 * 60; $min += 30 * 60)
{
$hour=date("h", $start + $min);
$minute=date("i", $start + $min);
$am=date("A", $start + $min);
while ($row=mysql_fetch_array($result)) {
$thing = $row[0];
}
printf("<tr><td>%s</td><td>$thing</td></tr>",
date("g:i a", $start + $min));
}
任何错误?查询是否失败? – 2011-02-15 17:42:30
为什么不在数据库中查询某一天发生的所有事情,通过每隔30分钟的时间间隔进行一次迭代,以及当时是否有事件显示它。这将消除不断发送每个间隔的查询。 – 2011-02-15 17:44:43
顺便说一句:永远不要把变量放在printf字符串中。该变量可能包含'%'字符,并且printf可能会失败。 – 2011-02-15 18:02:21