我已经绝望地寻找如何处理这种情况的解决方案。
我正在尝试创建一个谷歌图表表,其中的列数每年都会自动更新。
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);