如何从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 中的控制器?