【问题标题】:count and check json query result统计查询json查询结果
【发布时间】:2016-09-01 09:58:06
【问题描述】:

我正在处理三种情况:

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

【问题讨论】:

    标签: php mysql json laravel


    【解决方案1】:

    如果我理解正确,你需要count()他们:

    $numberOfResults = count($events);
    

    【讨论】:

    • 哇,原来这么简单。我回来了,它看起来像一个 json。所以我想知道如何对json进行计数。但我现在明白了。它的 json 仅在返回查看时。感谢您的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2016-05-06
    相关资源
    最近更新 更多