2013-10-27 87 views
0

我有一個事件表:從PHP中的MYSQL中提取日期

字段包括:名稱,開始日期和結束日期。

在我的網頁我現在想畫一個日曆整整一個月

要創建頁面,我循環,雖然該月的天,並要檢查是否有已經預訂了一個事件這些天。例如。如果日期出現在表格中任何記錄的開始日期和結束日期之間。

我很確定我不想運行31個查詢,所以達到此目的後的最佳方式?

+0

加載數組中的事件並檢查數組而不是數據庫? –

回答

2

您不需要31個查詢,您可以獲取整個月份並在PHP代碼中完成其餘部分。

SELECT 
    `name`, 
    `start-date`, 
    `end-date` 
FROM 
    `table of events` 
WHERE 
    `start-date` BETWEEN '2013-10-01 00:00:00' AND '2013-10-31 23:59:59' 
OR 
    `end-date` BETWEEN '2013-10-01 00:00:00' AND '2013-10-31 23:59:59'; 

它會爲您提供有關在給定期間內開始或結束的所有事件的信息。無論您需要什麼,都可以隨時使

1
$query = "SELECT name, start-date, end-date from Events WHERE (start-day >= $firstDayOfMonth AND start-day <= $lastDayOfMonth) OR (end-day >= $firstDayOfMonth AND end-day <= $lastDayOfMonth)"; 

這會給你在指定月份開始或結束的所有事件。

$ firstDayOfMonth,$ lastDayOfMonth - 你應該根據用戶輸入在你的php代碼中計算這些值。