我已經構建了一個顯示12個月期限的簡單PHP日曆。我有一個包含日曆事件的MySQL數據庫。我想用我的活動填充我的日曆。我當然可以每天運行MySQL查詢,但365個查詢似乎效率很低,就像運行單個MySQL查詢並循環遍歷結果365次一樣。如果有的話,什麼是替代方案?有沒有簡單而有效的方法來做到這一點?填充日曆的最有效方法?
0
A
回答
0
$query = "SELECT idEvent, day, hour , event from calendar where year = 2014 order by day, hour ";
$calendarEvents = array();
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
$calendarEvents[ $row["day"] ][ $row["idEvent"] ] = $row;
}
/* free result set */
$result->free();
}
然後你有2014年的數據與1查詢和數組$日曆事件訪問他們。 每一天你必須通過ID的所有事件,所以用foreach循環你的那一天所有事件以相同的查詢順序
for($i = 1; $i < 365 ; $i++){
$date = date("Y-m-d" , strtotime("2013-12-31 + $i day"));
foreach($calendarEvents[ $date ] as $idEvent => $c){
echo $idEvent . " -- ".$date." - ". $c["hour"]." - ".$c["event"];
}
}
0
給你,每一年的天一行結果集的順序,以及當天的所有事件(如果有的話)連接到另一列,您可以做這樣的事情: -
SELECT DateSub.aDay, GROUP_CONCAT(CONCAT_WS(':', SomeCalendarTable.eventName, SomeCalendarTable.startTime, SomeCalendarTable.endTime)) AS DaysEvents
FROM
(
SELECT DATE_ADD('2014/01/01', INTERVAL (Units.DayNo + Tens.DayNo * 10 + Hundreds.DayNo * 100) DAY) AS aDay
FROM
(SELECT 1 AS DayNo UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 0) Units,
(SELECT 1 AS DayNo UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 0) Tens,
(SELECT 1 AS DayNo UNION SELECT 2 UNION SELECT 3 UNION SELECT 0) Hundreds
HAVING YEAR(aDay) = '2014'
) DateSub
LEFT OUTER JOIN SomeCalendarTable
ON DateSub.aDay = SomeCalendarTable.calendarDate
GROUP BY DateSub.aDay
相關問題
- 1. 最有效的方式來填充UITableView
- 2. 高效填充ASP.Net日曆控件
- 3. 用QPixmap填充QWidget的有效方法
- 4. 填充凸形的有效方法
- 5. 「填充」有效載荷的最簡單方法?
- 6. 用數據填充字節數組的最有效方法?
- 7. 從數據庫值填充數組的最有效方法?
- 8. 用字典填充字典鍵最有效的方法
- 9. Python - 什麼是生成填充最有效的方法?
- 10. 用auto_increment填充表格的最有效方法
- 11. 用日曆天填充UITableView
- 12. 用約會填充日曆
- 13. 日曆從右側填充
- 14. 最有效的方式來填充GridView中的DropDownLists?
- 15. 最有效的方式來檢索文本來填充UITableView
- 16. 什麼是最有效的方式來填充列表視圖?
- 17. 什麼是使用PHP填充表格的最有效方式?
- 18. 填充DynamoDb表的最佳方法
- 19. 填充視圖的最佳方法
- 20. 填充日曆廣場的一半bgcolor
- 21. 從數據庫填充的大日曆
- 22. 最高效的遍歷方法
- 23. 使用整數範圍填充選擇器視圖的最有效方法?
- 24. 通過指定時間間隔填充頁面的最有效方法?
- 25. 在android中填充數據庫的更有效的方法
- 26. 簡單日曆的最佳方法?
- 27. Matplotlib填充方法和日期時間
- 28. Gtk日曆填充整個窗口
- 29. 自定義日曆應填充屏幕
- 30. 如何使用javascript填充日曆?
所有取決於您想要的日曆的輸出/ UI。 – andrewb
用天作爲鍵創建一個數組,然後在1..365循環內使用它。 – Vatev
什麼是你的餐桌結構? – Kickstart