好了,所以我想選擇DB行,看是否有在日曆中的任何衝突,我所遇到的另一個問題SQL語句選擇行
這裏是我的代碼
$query3 = $dbh->prepare("SELECT * FROM calendar_" . $companyID . " WHERE (calTime+duration) > :calstart AND (calTime+duration) <= (:calend + (duration-(:calend-calTime))) AND agentID = :agentID ORDER BY calTime ASC");
$query3->bindParam(':calstart', $time);
$calend = $time + $duration;
$query3->bindParam(':calend', $calend);
這看起來是一個像這樣更具可讀性SQL
SELECT * FROM calendar_01 WHERE (calTime + duration) > 1331386200
AND (calTime + duration) <= (1331388000 + (duration - (1331388000 - calTime)))
AND agentID =1
ORDER BY calTime ASC
LIMIT 0 , 30
下邊界明顯工作正常但與上邊界我有問題,即如果一個事件的持續時間是7200 2小時,有人試圖進入一個新的事件,即只有1800的長度,並在第一個事件發生後1800開始允許它,即使已經輸入的事件長度爲7200並且事實上會超出新事件。因此,我需要上邊界是動態的,因爲如果:calend <(calTime + duration)然後選擇行,否則使用:calend作爲上邊界。
我,雖然我幾乎是正確的什麼我卻在嘗試此部分
(1331388000 + (duration - (1331388000 - calTime)))
結束了在某些情況下減減,因此上界是非常大的,包括對行的時候,他們不應該
對不起,但你的問題是什麼? – Ben 2012-03-11 00:15:08