我想画一个谷歌折线图,但我有一些问题,绘制第二条线。我使用的是mysql数据库中的数据,它允许我显示2018年按月份分组的总销量。
但是我想显示为每个责任组划分的金额总和,这是我的每一行中的一个字符串值。
这是我的密码:
<?php
$curyear = date('Y');
$con = mysqli_connect('xxxx','xxxx','xxxx','xxxx');
?>
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {
// Create the data table.
var data = google.visualization.arrayToDataTable([
['Date', 'Pezzi',],
<?php
$query = "SELECT responsabile, sum(n_sim)+sum(n_accessi) as pezzi, data_dichiarato FROM dichiarati WHERE responsabile = 'ADMRZ01' and n_ragsoc != 'DICHIARATO ZERO' and YEAR(DATA_DICHIARATO) = '$curyear' GROUP BY MONTH(data_dichiarato) ORDER BY data_dichiarato";
$exec = mysqli_query($con,$query);
while($row = mysqli_fetch_array($exec)){
echo "['".date("M", strtotime($row['data_dichiarato']))."',".$row['pezzi']."],";
}
?>
]);
// Set chart options
var options = {'title':'SIM CONSEGNATE NEL <?php echo $curyear; ?>',
'width':1200,
'height':300
// isStacked: true
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<!--Divs that will hold the charts-->
<div id="chart_div"></div>
</body>
</html>
如您所见,我有一个查询,它只提取admrz01的数据。但在我的数据库中,有admrz02、admrz11和其他行。
我想为我要增加的每一项责任画一个折线图。
如何修改代码?是否需要添加另一个查询?还是连续剧?对不起,我只是个图表初学者
谢谢
3条答案
按热度按时间new9mtju1#
为了拥有多条生产线/系列,
google数据表需要如下所示。。。
但是,如果没有一堆硬编码,从查询中构建它将非常困难
相反,增加一列责任,
然后我们可以使用google数据方法将行转换为列。
首先,数据表看起来像。。。
你要保留日期,因为当我们合计时,
月份名称将按字母顺序排列,并且将不按顺序排列。
e、 g.-->4月、8月、12月、2月等。。。
我们可以在以后格式化为月份名称。
首先,将查询更改为包含所有职责。。。
然后可以使用以下javascript将行转换为列,
请参阅以下工作片段。。。
注:
jsapi
不应再用于加载图表库,根据发行说明。。。
谷歌图表的版本仍然可以通过
jsapi
加载程序不再持续更新。为了安全起见,上一次更新是v45的预发行版。请使用新的gstaticloader.js
从现在开始。这只会改变
load
语句,请参见上面的代码段。。。5jvtdoz22#
找到了另一个方法google.visualization.data.join的解决方案,它可以工作,但我有一个按字母顺序月份的愚蠢问题。
jckbn6z73#