确定特定日期存在的条目数

时间:2012-02-06 23:20:21

标签: php mysql fullcalendar

全部, 我有以下代码:

$fetch = mysql_query("SELECT * FROM calendar_events where event_status='booked' and event_type='wedding' GROUP BY start"); 
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['title'] = $row['title'];
    $row_array['start'] = $row['start'];
    $row_array['end'] = $row['end'];
    array_push($return_arr,$row_array);
}
echo json_encode($return_arr);

我正在使用fullcalendar并尝试确定有多少事件具有相同的开始日期。例如,如果我有以下日期:

02/06/2012
02/06/2012
03/01/2012
04/05/2012

在我的数据库中有条目的日期我想基本看到该日期有多少事件,并且基本上可以说有多少个点。因此,对于任何给定的日期,我可以有两个预定的活动,所以对于02/06/2012我希望它返回“预订”,并且对于03/01/2012我想要“留下1个点”等等。

我该如何做这样的事情?

谢谢!

3 个答案:

答案 0 :(得分:1)

SELECT 
start, count(*) as used, 2-count(*) as free
FROM calendar_events 
WHERE event_status='booked' 
  and event_type='wedding'
GROUP BY start

或通过你的评论:

SELECT 
date(start) as eventdate, count(*) as used, 2-count(*) as free
FROM calendar_events 
WHERE event_status='booked' 
  and event_type='wedding'
GROUP BY date(start)

答案 1 :(得分:0)

你几乎就在那里,但是你想使用COUNT(*)来返回组中的条目数。 (请记住给列添加一个别名,以便您可以检索它。)您还应该自己限制仅检索start列,因为检索不在GROUP BY子句中的列是非标准的。

答案 2 :(得分:0)

你差不多完成了,因为其他人打败了我。你可以尝试这样的事情。重要的部分就是如上所述计算。

$fetch = mysql_query("SELECT id,title,start,end,count(*) as filled FROM calendar_events where event_status='booked' and event_type='wedding' GROUP BY start"); 
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['title'] = $row['title'];
    $row_array['start'] = $row['start'];
    $row_array['end'] = $row['end'];
    $row_array['filled'] = $row['filled'];
    $row_array['booked'] = ($row['filled'] >= 2) ? true : false;

    array_push($return_arr,$row_array);
}
echo json_encode($return_arr);