![](/img/trans.png)
[英]Add JavaScript links to pie slices of google visualizations pie chart
[英]Google Visualizations Pie Chart PHP array
我必須制作一個餅圖來顯示這些數據:
var data = google.visualization.arrayToDataTable([
['Type', 'Amount'],
['Option1', 11],
['Option2', 6],
]);
我正在使用 Codeigniter 進行查詢並創建一個數組,該數組像這樣輸入 JS:
function drawChart(){
var data = google.visualization.arrayToDataTable(<?php echo $type_array_json; ?>);
var options = {
title: 'Type',
legend: {position: "bottom"},
};
var chart = new google.visualization.PieChart(document.getElementById('type_chart'));
chart.draw(data, options);
}
我正在查詢這樣的數據:
function get_chart_data($ID = '', $start_date = '', $end_date = '')
{
if (!empty($start_date) && !empty($end_date))
{
$this->db->select("Option1 and Option2 as Type, COUNT(ID) as Amount", FALSE); // This line is the problem
$this->db->from('TABLE');
populate_where($this->db, 'ID', $ID, $ID);
$this->db->group_by("DATALABEL");
$this->db->order_by("DATASORT ASC");
$query = $this->db->get();
return $this->_create_report_array($query->result_array());
}
Option1 和 Option2 都是記錄中的字段,可以為 1 或 0,我需要比較 Option1=1 和 Option2=1 的總量。
如何使結果數組與示例數組相同,以便圖形將在第一列中顯示 2 個選項,在第二列中顯示它們的值?
請幫我
您可以使用 model 僅從數據庫中獲取數據並將數據傳遞到 controller 進行格式化。
MODEL
public function option_model()
{
$this->db->select('option, COUNT(*) as frequency');
$this->db->group_by('label');
$this->db->order_by('frequency', 'desc');
$query = $this->db->get($this->tablename);
return $query->result();
}
CONTROLLER
public function option_controller(){
$result = $this->Database_model->option_model();
$array = array();
$cols = array();
$rows = array();
$cols[] = array("id"=>"","label"=>"Option1","pattern"=>"","type"=>"string");
$cols[] = array("id"=>"","label"=>"Count","pattern"=>"","type"=>"number");
foreach ($result as $object) {
$rows[] = array("c"=>array(array("v"=>(string)$object->label),array("v"=>(int)$object->frequency)));
}
$array = array("cols"=>$cols,"rows"=>$rows);
return json_encode($array);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.