#mysql #json #codeigniter #highcharts
#mysql #json #codeigniter #высокие диаграммы
Вопрос:
У меня есть база данных :
введите описание изображения здесь
как запросить mysql в модели codeigniter, чтобы он мог выводить данные json следующим образом :
enter code here
</script»> $.ajax({ url: ‘?grid=trueamp;tahun=’ tahuncikarang, метод: «GET», успех: функция (данные) { 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);
}
Комментарии:
1. пожалуйста, поделитесь, что вы пробовали до сих пор.
2. как мне запросить mysql, чтобы он мог отображать данные json следующим образом [{ id: ‘republican-2010’, имя: ‘Republican 2010’, данные: [[‘Восток’, 4], [‘Запад’, 2], [‘Север’, 1], [‘South’, 4] ] }]
3. сначала извлеките данные из mysql, а затем измените их, используя цикл foreach на php или на любом другом языке, который вы используете, затем передайте его в 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);