2012-02-06 14 views
0

すべて、 のために存在するどのように多くのエントリが決定します。私は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); 

を。内のエントリを持っている日に

2012年2月6日
2012年2月6日
2012年3月1日
2012年4月5日

:だから、例えば私は、次の日付を持っていた場合私のデータベース私は基本的にその日にいくつのイベントがあるのか​​を見たいと思っています。だから任意の日付のために私は2つの予定されたイベントを持つことができるので、02/06/2012私はそれが "予約"を返すと03/01/2012私は "1スポット左"などをしたいと思います

このようなことをやり遂げるにはどうすればいいですか?

ありがとうございます!

答えて

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) 
+0

ありがとうございます、それはうまくいきますが、私には1つの問題があります。私のデータはDATETIMEとして保存されるので、エントリーにも同じ日に2つあるとは思わないタイムスタンプがあります。どのようにそれを説明するための任意のアイデア? – user1048676

+0

@ user1048676私の答えを編集しました –

0

あなたはほとんどそこにいる、しかし、あなたは、グループ内のエントリ数を返すためにCOUNT(*)を使用したいです。 GROUP BY句に含まれていない列の取得は非標準であるため、start列のみの取得を制限する必要があります。

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); 
関連する問題