嘿,大家好。我試圖用三十分鐘的時間間隔打印一份時間表,並想要查詢一個數據庫以獲取當時發生的任何事情。如果我手動輸入時間(小時,分鐘,上午/下午(月,年,日工作))我得到事件。只是當我讓查詢從循環中抽出時間,這不起作用。有任何想法嗎?循環中的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