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

Posted

技术标签:

【中文标题】如何从codeigniter中的模型生成json格式【英文标题】:How To generate json format from model in codeigniter 【发布时间】:2021-01-15 16:46:33 【问题描述】:

我有数据库:

enter image description here

如何在codeigniter模型中查询mysql,使其输出json数据如下:

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

         
        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);
 

【问题讨论】:

请分享您到目前为止尝试过的内容。 如何查询 mysql 以便它可以显示像这样的 json 数据 [ id: 'republican-2010', name: 'Republican 2010', data: [ ['East', 4], ['West', 2], ['North', 1], ['South', 4] ] ] 首先从 mysql 获取数据,然后使用 php 中的 foreach 循环或您使用的任何语言对其进行修改,然后将其传递给 highcharts 【参考方案1】:

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

$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);

【讨论】:

以上是关于如何从codeigniter中的模型生成json格式的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CodeIgniter 中的视图访问模型

如何将结果从模型传递到 CodeIgniter 中的控制器?

我如何从 Codeigniter 中的助手调用助手?

如何从rails中的api更新用户模型?

CodeIgniter - 如何从控制器返回 Json 响应

从 codeigniter 中的视图调用模型是不是不好?