data.addRows更正数据格式



我已经绝望地寻找如何处理这种情况的解决方案。

我正在尝试创建一个谷歌图表表,其中的列数每年都会自动更新。

SQL中的过程现在每年添加一列并统计所有数字,从2006年开始,网页在谷歌图表表和图表中显示结果。

问题:

每年动态添加一个新列(已解决)。

每年向数组中动态添加一行。

正确的数据格式。

SQL中的过程现在每年添加一列,并从2006年开始计算所有数字。

SQL表:

ID  Type    Month O2015 O2016   O2017   O2018   O2019
1   1       1     4346  3180    3409    4345    857

PHP选择:

$sqltest1= "SELECT  Month, O2006, O2007, O2008 FROM TESTOVACI100 WHERE Type = 1;";
$test1= sqlsrv_query($conn, $sqltest1);

谷歌图表代码:

function drawSecondTable() {
var data = new google.visualization.DataTable();  
var d = new Date();
var n = d.getFullYear();
//Funguje
var columns = '<?php echo $column_count ;?>'; 
/*
var showdata = <?php
while($row = sqlsrv_fetch_array($obratmesice, SQLSRV_FETCH_ASSOC)){
echo "['".$row["Month"]."', ".$row["O2006"].", ".$row["O2007"].", ".$row["O2008"]."],";}                                             
?>   
*/
data.addColumn('number', 'Month');  
for (var i = 2006; i < n + 1; i++){
data.addColumn('number', 'O' + i);}     
Data.addRow(showdata);   
var table = new google.visualization.Table(document.getElementById('table_div2'));     
table.draw(data, {showRowNumber: false, width: '100%', height: '100%'});
}

正如你在代码的注释部分所看到的,我手动添加了一列——月份,其余的都是根据实际年份自动添加的。

我的问题是…如何自动添加包含数据的行?

我在代码的注释部分尝试了一种方法,但我不确定如何在不每年手动添加新行的情况下做到这一点。

有没有一种方法,如何用一些循环来解决这个问题?

谢谢大家的回答。

假设$column_count不包括"Month"列,
您可以按如下方式循环$row的每个索引。。。

var showdata = <?php
while($row = sqlsrv_fetch_array($obratmesice, SQLSRV_FETCH_ASSOC)){
echo "[".$row["Month"].", ";
for ($i = 0; $i < $column_count; $i++) {
echo $row["O".($i + 2006)].", ";
}
echo "];";
}
?>

请确保此处data为小写。。。

data.addRow(showdata);

具有多行。。。

var showdata = [<?php
while($row = sqlsrv_fetch_array($obratmesice, SQLSRV_FETCH_ASSOC)){
echo "[".$row["Month"].", ";
for ($i = 0; $i < $column_count; $i++) {
echo $row["O".($i + 2006)].", ";
}
echo "],";
}
?>]; 
data.addRows(showdata);

最新更新