[英]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.