2016-05-06 9 views
2

をチェックし、私は3つのシナリオ取り扱いしています:クエリが結果 2を返さない場合、クエリが1件の結果 3を返す場合))数とJSONクエリ結果

1)クエリが二つ以上の結果

を返す場合、これは、私のクエリ:

[] = 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 

$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形式で$イベントを取得

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. 
} 

答えて

2

を、あなたはそれらcount()する必要があります:

$numberOfResults = count($events); 
+1

ああすごい、それは簡単なことでした。私は戻ってきて、それはjsonのようだった。だから、私はどのようにjsonのカウントを行うのだろうかと思っていた。しかし、私は今理解しています。そのjsonは表示に戻ったときだけです。ソリューションをありがとう –

関連する問題