Php 谷歌图表&x2B;MySQL/json

Php 谷歌图表&x2B;MySQL/json,php,javascript,mysql,json,google-visualization,Php,Javascript,Mysql,Json,Google Visualization,这几天来我一直在努力让它工作。我想要的是用googlecharts创建列/条形图。并从我的数据库中动态生成 我的查询: SELECT gs.league as league , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=1) as one , (Select Count(*) From gamestats WHERE

这几天来我一直在努力让它工作。我想要的是用googlecharts创建列/条形图。并从我的数据库中动态生成

我的查询:

SELECT gs.league as league
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=1) as one
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=2) as two
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=3) as three
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=4) as four
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=5) as five
             , (Select Count(*) From gamestats WHERE season=gs.season AND league=gs.league AND event=6) as six
           FROM gamestats gs WHERE gs.season=2013 AND gs.league < 3 GROUP by gs.league
这不会产生任何结果。在谷歌图表示例中,json如下所示:

{
"cols": [
  {"id":"","label":"Topping","pattern":"","type":"string"},
    {"id":"","label":"Slices","pattern":"","type":"number"}
  ],
  "rows": [
    {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
    {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
  ]
}

如何从查询中获取这种json格式?谢谢

不久前,我也在努力解决这个问题。这是我如何修复它的,我想你会理解的

$data = $this->stats_model->get_flights_data(); // this is the model

$label = array();

array_push($label, array("id" => "", "label" => "Airline", "pattern" => "", "type" => "string"));
array_push($label, array("id" => "", "label" => "Amount", "pattern" => "", "type" => "number"));

$rows = array();
foreach($data as $result) {
    array_push($rows, array("c" => array(array("v" => $result['airline'], "f" => null), array("v" => (int)$result['amount'], "f" => null ))));
}

$cols = array("cols" => $label, "rows" => $rows);
echo json_encode($cols);
这是我的模型:

$query = "SELECT count(flight_number) AS `amount`, airline from flights_database WHERE flight_date = CURDATE() AND airline != '' GROUP by airline HAVING count(flight_number)>0 ORDER by count(flight_number) DESC, airline DESC LIMIT 10";

$q = $this->db->query($query);
$data = $q->result_array();

return $data;

希望这能给你一些启示

哇,谢谢!现在我可以让图表显示出来了。但是现在有一些新的问题。。您需要创建另一个标签,还需要在数组末尾添加另一个数组,如
array(“v”=>(int)$result['amount'],“f”=>null)
。\u push好的,这很有意义,愚蠢的我。。再次感谢!现在所有工作正常:)
$query = "SELECT count(flight_number) AS `amount`, airline from flights_database WHERE flight_date = CURDATE() AND airline != '' GROUP by airline HAVING count(flight_number)>0 ORDER by count(flight_number) DESC, airline DESC LIMIT 10";

$q = $this->db->query($query);
$data = $q->result_array();

return $data;