2016-07-24 59 views
0

我试图从mysql表中获取所有结果并将其转换为Json格式。每行可能包含一个公共列值(movie_name)。我想按照该共同字段对结果进行分组。将多个mysql结果组成一列值

这是我这个查询第一个结果

$slots = SELECT movie_name,id as slot_id,screen_id,time,price FROM `slots`; 

结果:

{ 
     "movies": [ 
      { 
       "movie_name": "iceage", 
       "slot_id": "142", 
       "screen_id": "45", 
       "time": "6.00", 
       "price": "204" 
      }, 
      { 
       "movie_name": "lights out", 
       "slot_id": "146", 
       "screen_id": "45", 
       "time": "11.00", 
       "price": "150" 
      }, 
      { 
       "movie_name": "lights out", 
       "slot_id": "147", 
       "screen_id": "45", 
       "time": "2.00", 
       "price": "103" 
      }, 
      { 
       "movie_name": "conjuring", 
       "slot_id": "148", 
       "screen_id": "45", 
       "time": "9.00", 
       "price": "500" 
      }, 
      { 
       "movie_name": "iceage", 
       "slot_id": "151", 
       "screen_id": "45", 
       "time": "", 
       "price": "11" 
      }, 
      { 
       "movie_name": "lights out", 
       "slot_id": "155", 
       "screen_id": "45", 
       "time": "11", 
       "price": "11" 
      } 
     ] 
} 

我想改变上述这样的结果: -

{ 
    "movies": [ 
      { 
       "movie_name": "lights out", 
       "slots":[ { 
        "slot_id": "146", 
        "screen_id": "45", 
        "time": "11.00", 
        "price": "150" 
       } 
       { 
        "slot_id": "147", 
        "screen_id": "45", 
        "time": "2.00", 
        "price": "103" 
       } 
       { 
        "slot_id": "155", 
        "screen_id": "45", 
        "time": "11", 
        "price": "11" 
       } 
       ] 
      }, 
      { 
       "movie_name": "conjuring", 
       "slots": { 
        "slot_id": "148", 
        "screen_id": "45", 
        "time": "9.00", 
        "price": "500" 
       } 
      }, 
      { 
       "movie_name": "iceage", 
       "slots":[ { 
        "slot_id": "142", 
        "screen_id": "45", 
        "time": "6.00", 
        "price": "204" 
       } 
       { 
        "slot_id": "151", 
        "screen_id": "45", 
        "time": "", 
        "price": "11" 
       } 
       ] 
      }, 
     ] 
    } 

我应该如何改变我查询获得以上结果。我试着用这个PHP代码:

      foreach ($slots as $row) { 
           $movie_name = $row['movie_name']; 
           if (!isset($groups[$movie_name])) { 
            $groups[$movie_name] = array(); 
           } 
          $groups[$movie_name][] = $row; 
          } 

,但没有得到需要的结果。请帮忙。谢谢你..

回答

0
$json_arr = array("movies"=>array()); 
foreach ($slots as $slot) { 
    $json_arr['movies'][$slot["movie_name"]]['movie_name'] = $slot["movie_name"]; 
    $json_arr['movies'][$slot["movie_name"]]['slots'][] = array (
     "slot_id" => $slot["slot_id"], 
     "screen_id" => $slot["screen_id"], 
     "time" => $slot["time"], 
     "price" => $slot["price"] 
    ); 
} 
相关问题