gpt4 book ai didi

php - Google Charts 来自 MySql 数据库的柱形图

转载 作者:行者123 更新时间:2023-11-30 01:31:23 25 4
gpt4 key购买 nike

真正的问题是,当第一列使用日期时,如何从 MySql 查询中填充 Google 图表数据表?

我正在尝试使用 Google Charts API 创建柱形图。问题是数据是时间序列数据。代表的日期有很多。创建数据表的方法是将第 0 列分配给日期,随后的每个列代表正在测量的数据。该信息来自文档。我只是不知道如何将数据分配给后续列。我现在已经对此进行了广泛的研究,并且有一些接近的答案,但我无法让它们为此工作。这是当前生成图表数据表的代码:

$invArr = array('cols' => array(

array('label' => 'date', 'type' => 'date'),
array('label' => 'SKU', 'type' => 'number')),
'rows' => array());

while($row = mysql_fetch_row($query)) {
$invArr['rows'][] = array('c' => array(array('v' => $row[0]), array('v' => $row[1])));
}

我从 Google 图表文档中了解到,第 0 列始终是连续数据的日期。随后的每一列都是正在测量的数据,在本例中是 SKU 编号。我需要让每行中的第一个数组代表日期,后续数组代表 qtyoh 数据。我不知道该怎么做。

最佳答案

我研究了几天,终于能够通过拼凑许多不同问题的答案来解决这个问题。

我首先查询不同的日期并将它们放入一个数组中。完成此操作的方式非常重要,因为日期在 json 编码时是一个字符串。解析它并准确地以日期(年,月,日)格式传递它非常重要。稍后使用变量来表示日期也很重要。

$dateArray = array();

while($row = mysql_fetch_row($queryDates)) {

$dtArray = explode('-',$row[0]);
$day = (int) $dtArray[1];
$month = ((int) $dtArray[0])-1;
$year = (int) $dtArray[2];
$dateArray[] = "Date($year, $month, $day)";

}

然后,我通过循环查询 SKU 来设置表的列。

$invArr = array(
'cols' => array(
array('label' => 'Date', 'type' => 'date')
)
);

while($row = mysql_fetch_row($querySkus)) {
$invArr['cols'][] = array('label' => $row[0], 'type' => 'number');

}

然后,我查询数量并将它们放入数组中。然后,我循环遍历每个值并填充表数组 ($inVarr)。

$quantities = array();
while($row = mysql_fetch_row($queryQty)) {
$quantities[] = (int) $row[0];
}

$qtyCounter = 0;
for($i=0;$i<count($dateArray);$i++) {

$invArr['rows'][] = array(
'c' => array(
array('v' => $dateArray[$i]),
array('v' => $quantities[$qtyCounter]),
array('v' => $quantities[$qtyCounter+1]),
array('v' => $quantities[$qtyCounter+2])
)
);
$qtyCounter=$qtyCounter+3;

}

然后我可以只回显 json 编码数组,它将返回数据表的数据。

回显 json_encode($invArr);

我认为这有点笨拙,但它确实有效。

关于php - Google Charts 来自 MySql 数据库的柱形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com