我正在使用 JQuery 完整日历事件。我知道到目前为止还没有一个选项可以按限制加载事件。
在月视图中,如果我在 1 天有 100 个事件,它会使表格单元格变得非常大。我想将其限制为每天 10 个事件。
我想我会做的是在服务器端使用 PHP。由于我在给定日期范围的情况下使用 PHP 加载所有事件,因此我想我会每天加载并将其限制为每天 10 个事件。
这就是我在 PHP 方面所拥有的:
if ($currView == 'month') //curr view is the current view of the calendar
{
$start = $_GET['start']; //gets from the calendar usually start of month
$end = $_GET['end']; //gets from calendar usually end of month
//some array to store all events before using json_encode
$limitEvents = array();
$limit = 10;
//loop through from start till end by 1 day incremental
for ($i = $start; $i < $end; $i+=strtotime($i, "+1 day"))
{
//make the end of day to be the current day but 23:59:59
$endOfDay = date('m/d/Y', $start);
$endOfDay = strtotime($endOfDay . ' 23:59:59');
//load the events from DB using date range which is 1 day and limit of events
$loaded = $this->loadDataFromDB($start, $endofDay, $limit);
//merge the arrays
array_merge($limitTasks, $loaded);
}
}
现在这段代码的问题是,当我尝试运行它时它不是最优的,它每天循环并每天查询并且需要很长时间,甚至超时。
我的问题是,我将如何在 MySQL 端执行此操作?我会给出从月初到月底的日期范围。我不会在 PHP 端每天循环并每天加载数据,而是在 MySQL 端这样做。例如查询看起来像这样:
SELECT *
FROM Events_Table
WHERE Ev_Date BETWEEN :startMonth AND :endMonth
(have extra query to load by days within given start and end month
and have LIMIT 10 per day)
无法完成上述查询,括号中的文本需要转移到有效查询中,以便每天选择10个事件,共有31天,所以应该选择310个左右的事件
如果有人有更好的解决方案,请帮忙。