2012-02-06 3 views
0

모든, 존재 얼마나 많은 항목을 결정 나는 다음과 같은 코드가 있습니다특정 날짜

$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를 사용하고 동일한 날짜에 시작을 얼마나 많은 이벤트를 결정하기 위해 노력하고 있습니다.

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

고마워, 그게 효과가 있지만, 단 하나의 문제가 있습니다. 내 데이터는 DATETIME으로 저장되므로 항목에 타임 스탬프가있어 같은 날에 두 개가 있다고 생각하지 않게됩니다. 그걸 어떻게 설명 할 생각입니까? – 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); 
관련 문제