簡體   English   中英

谷歌可視化餅圖 PHP 數組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM