세 가지 시나리오를 처리하고 있습니다.
1) 쿼리가 결과를 반환하지 않는 경우 2) 쿼리가 하나의 결과를 반환하는 경우 3) 쿼리가 두 개 이상의 결과를 반환하는 경우
이것은 내 질문입니다.
$events = DB::table('bookings')
->join('events','bookings.event_id','=','events.id')
->join('spots','bookings.spot_id','=','spots.id')
->join(DB::raw('(select S.event_id,sum(S.spaces) as sum_spaces from spots S group by S.event_id) d'), function($join)
{
$join->on('bookings.event_id', '=', 'd.event_id');
})
->select('bookings.event_id','events.name', 'spots.event_date','d.sum_spaces',
DB::raw('COUNT(bookings.event_id) as tb'))
->groupBy('bookings.event_id')
->get();
다음과 같은 json 형식으로 $ events를 얻습니다.
[] = 0
[{"event_id":1,"name":"Yoga","event_date":"2016-05-02","sum_spaces":"450","tb":6}] = 1
[{"event_id":1,"name":"Yoga","event_date":"2016-05-02","sum_spaces":"100","tb":16},{"event_id":2,"name":"Yoga","event_date":"2016-05-02","sum_spaces":"450","tb":6},{"event_id":3,"name":"blah","event_date":"2016-05-02","sum_spaces":"250","tb":6}] = 3
0,1 및 3이 표시되면 주어진 결과 쿼리에 대해 알고 싶습니다. 위의 결과가 몇 개인 지 확인해야합니다. 어떻게 찾을 수 있습니까?
이것이 내가 시나리오를 처리하는 방법이기 때문입니다.
if(empty($events))
{
//sets default value
}
else if(check if $results have one and only one result)
{
//Do something
}
else
{
//here I can handle if $events query have more than one result.
}
내가 당신을 올바르게 이해했다면 다음이 필요 count()
합니다.
$numberOfResults = count($events);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다