我正在尝试为公司 Intranet 网页设置一些简单的 Amcharts 图表。在过去的两周里,我创建了 HTML/JS 并使用 Amcharts 制作了一个漂亮的图形(用于演示目的的数据硬编码在 HTML 中)。我还安装了 XAMPP 并创建了一个 MySQL 数据库,其中填充了表和一些从 csv 文件导入的数据。
到目前为止,一切正常——我可以显示漂亮的图形,我可以收集数据以向图形提供数据。但是,我一直在从两个方面解决这个问题(将源数据放入数据库并在网页上的图表中显示数据)。现在我需要连接这两个端点,这样我就可以为 Amcharts 提供来自 MySQL 的数据。
我知道我需要使用 PHP 从 MySQL 中获取数据并将其放入 Amcharts 可以使用的数组中,但我的 PHP 知识非常基础,我正在努力编写代码。
我所拥有的是成功连接到 MySQL 并提取数据以显示在浏览器中的 PHP 代码 - 可以。我只是不知道如何以 Amcharts 绘制图形所需的格式将该数据放入多维数组中。
如果你们能在这里给我一些帮助并填补缺失的部分,那就太好了。我有一些用于创建数组逻辑的伪代码作为“真实”php 代码的基础。
这是填充数组的伪代码:
;charset=UTF-8', '', '', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$stmt = $db->query("SELECT * FROM <mytable> WHERE <mycondition>"); $prevweek = "9999"; $headrowdone = 0; while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { if ($prevweek < $row['WeekNumber']) { // New week so write out Category X Label ('Week') with the week number of the following data rows chartData.push($DataRow); $headrowdone = 0; } if (!$headrowdone) { $DataRow = "Week: "+$row['WeekNumber']; $headrowdone = 1; } // Write out the X-Axis Category value and the Y-Axis value $DataRow = $DataRow+$row['XAxisCategory']+": "+$row['YAxisCategory']; $prevweek = $row['WeekNumber']; } chartData.push($DataRow); ?>
SQL 表如下所示:
CREATE TABLE ( WeekNumber varchar(4), XAxisCategory varchar(50), YAxisValue integer);
并具有如下数据:'1301','A',10 '1301','B',20 '1301','C',24 '1302','A',11 '1302','B',22 '1302','C',27 '1303','A',14 '1303','B',23 '1303','C',28 ...等
amcharts 的数据数组需要如下所示:
var chartData = [{周:“1301”,A:10,B:20,C:24},{周:“1302”,A:11,B:22,C:27},{周:“1303” ,A:14,B:23,C:28 ....等}];