0
MySQL + PHP + Morris.js를 사용하여 일부 선 그래프를 생성합니다. 나는 문제가 점점가 있어요 그러나MySQL + PHP + Morris.js로 라인 그래프 생성
{"period": "2014 Q3", "A": 75, "B": 77, "C": 79},
{"period": "2014 Q2", "A": 85, "B": 87, "C": 89},
{"period": "2014 Q1", "A": 93, "B": 95, "C": 97}
:
I 데이터가 morris.js 그래프를 생성하는 아래를 위해 같이해야 이해 : 나는 결과 그래프는 다음과 같이 할 PHP + MySQL을 사용하여이 형식으로 변환합니다.
내 데이터베이스 구조는 다음과 같습니다.
table1: numbers
ID | name | time | number
------+------+------+---
1 | A | 1 | 75
2 | A | 2 | 77
3 | A | 3 | 79
4 | B | 1 | 85
5 | B | 2 | 87
6 | B | 3 | 89
7 | C | 1 | 93
8 | C | 2 | 95
9 | C | 3 | 97
table2: times
ID | time
----+------
1 | 2014 Q1
2 | 2014 Q2
3 | 2014 Q3
형식을 얻는 방법이 있습니까? morris.js
? 아니면 다른 종류의 형식을 사용하여 그래프를 생성하는 다른 방법이 있습니까? 는 다행스럽게도 필자는 내 데이터베이스 :(
감사합니다 많이!의 구조를 변경할 필요가 없습니다
당신은 당신이 원하는 것을 지적하지 않았다로서 당신이<div>
<div id="some_line_graph"></div>
<?php
try {
$db = connectPDO();
$row = $db->prepare("SELECT name, number FROM numbers"); //for the sake of argument and simplicity I leaved the most simple SQL
$row->execute();
$json_data=array();
foreach($row as $rec)
{
// value on x axis
$json_array['label']=$rec['name'];
// value on y axis
$json_array['value']=$rec['number'];
array_push($json_data,$json_array);
}
?>
<script type="application/javascript">
Morris.Line({
element: 'some_line_graph',
// json_encode returns JSON representation of a value
data: <?php echo json_encode($json_data,JSON_UNESCAPED_UNICODE)?>,
xkey: 'label',
ykeys: ['value'],
// Set to false to skip time/date parsing for X values, instead treating them as an equally-spaced series.
parseTime:false,
labels: ['<b>Numbers graph example</b>'],
resize: true
});
</script>
<?php
closePDO($db);
} catch (PDOException $e) {
showPDOErrors($e, $db);
}
?>
</div>
<div>
뭔가를 시도 할 수 있습니다