如何从 codeigniter 中的模型生成 json 格式

How To generate json format from model in codeigniter

我有数据库:

enter image description here

如何在 codeigniter 模型中查询 mysql 以便它可以像这样输出 json 数据:

enter code here $.ajax({ url: '?grid=true&tahun=' + tahuncikarang, 方法:“获取”, 成功:函数(数据){ var obj = JSON.parse(数据);

         }
        Highcharts.chart('cikarang', {
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Highcharts multi-series drilldown'
            },
            subtitle: {
                text: 'The <em>allowPointDrilldown</em> option makes point clicks drill to the whole category'
            },
            xAxis: {
                type: 'category'
            },

            plotOptions: {
                series: {
                    borderWidth: 0,
                    dataLabels: {
                        enabled: true
                    }
                }
            },

            series: [{
                name: '2010',
                data: obj.tahun1
            }, {
                name: '2014',
                data: obj.tahun2
            }],
            drilldown: {
                allowPointDrilldown: false,
                series: [{
                    id: 'republican-2010',
                    name: 'Republican 2010',
                    data: [
                        ['East', 4],
                        ['West', 2],
                        ['North', 1],
                        ['South', 4]
                    ]
                }, {
                    id: 'democrats-2010',
                    name: 'Republican 2010',
                    data: ''
                }, ]
            }
        });
    }

});

我在模型中尝试: 功能指数($tahuncikarang) {

    $this->db->select('nama AS nama, CONCAT(nama,"-", tahun) AS drilldown, sum(nilai) AS y');
    $this->db->where('tahun=2010');
    $this->db->group_by('nama')
              ->group_by('tahun');
    $tahuna1  = $this->db->get(self::$table5);
    $tahuna2 = array();
    foreach ($tahuna1->result() as $row) {
        array_push($tahuna2, $row);
    }

    $this->db->select('nama AS nama, CONCAT(nama,"-", tahun) AS drilldown, sum(nilai) AS y');
    $this->db->where('tahun=2014');
    $this->db->group_by('nama')
        ->group_by('tahun');
    $tahunb1  = $this->db->get(self::$table5);
    $tahunb2 = array();
    foreach ($tahunb1->result() as $row) {
        array_push($tahunb2, $row);
    }
    $result = array();
    $result['tahun1']    = $tahuna2;
    $result['tahun2']    = $tahunb2;
    return json_encode($result, JSON_NUMERIC_CHECK);
} 

我刚刚看了你的问题。 如果你可以使用这个查询,你可能会得到很好的结果。 谢谢

$qy = $this->db->query("select concat(lower(nama),'-',tahun) as id,concat(nama,'-',tahun) as name,group_concat(concat(zone,'-' ,nilai),',') as data group by nama, tahun")->result_array();

$result = array(); 
    foreach($qy as $row) { 
        $temp = array( 
            "id"=>$row['id'], 
            "name"=>$row['name'], 
            "data"=>array() 
        ); 
        $array = explode(',',$row['data']); 
        foreach($array as $el) { 
            $temp['data'][]=explode('-',$el); 
        } 
        $result[] = $temp; 
    }

echo json_encode($result);