gpt4 book ai didi

javascript - 将 MYSQL 的 PHP 输出格式化为 morris.js 图表数据

转载 作者:行者123 更新时间:2023-11-29 12:46:57 24 4
gpt4 key购买 nike

我有以下查询来检索 MYSQL 数据库中的数据:

SELECT a.PARNT_CIVSTATUS,count(a.PARNT_CIVSTATUS) from tbl_parnt a left join tbl_intrvw b 
on a.QN_NUMBR=b.QN_NUMBR left join tbl_barangay c on b.ZONE_NUM=c.BRGY_ZONE_NUM
group by a.PARNT_CIVSTATUS

这是 phpmyadmin 的输出:

phpmyadmin output

这是在 PHP 中使用 json_encode 的输出:

[
{"0":"L","PARNT_CIVSTATUS":"L","1":"14","count(a.PARNT_CIVSTATUS)":"14"},
{"0":"LSP","PARNT_CIVSTATUS":"LSP","1":"9","count(a.PARNT_CIVSTATUS)":"9"},
{"0":"M","PARNT_CIVSTATUS":"M","1":"4386","count(a.PARNT_CIVSTATUS)":"4386"},
{"0":"N","PARNT_CIVSTATUS":"N","1":"45","count(a.PARNT_CIVSTATUS)":"45"},
{"0":"NON","PARNT_CIVSTATUS":"NON","1":"1","count(a.PARNT_CIVSTATUS)":"1"},
{"0":"O","PARNT_CIVSTATUS":"O","1":"12","count(a.PARNT_CIVSTATUS)":"12"},
{"0":"S","PARNT_CIVSTATUS":"S","1":"681","count(a.PARNT_CIVSTATUS)":"681"},
{"0":"SGP","PARNT_CIVSTATUS":"SGP","1":"143","count(a.PARNT_CIVSTATUS)":"143"},
{"0":"SP","PARNT_CIVSTATUS":"SP","1":"148","count(a.PARNT_CIVSTATUS)":"148"},
{"0":"SPG","PARNT_CIVSTATUS":"SPG","1":"12","count(a.PARNT_CIVSTATUS)":"12"},
{"0":"W","PARNT_CIVSTATUS":"W","1":"239","count(a.PARNT_CIVSTATUS)":"239"},
{"0":"WGW","PARNT_CIVSTATUS":"WGW","1":"1","count(a.PARNT_CIVSTATUS)":"1"},
{"0":"WW","PARNT_CIVSTATUS":"WW","1":"2","count(a.PARNT_CIVSTATUS)":"2"}
]

我不知道如何格式化它:

{ y: 'L', a: 10 },
{ y: 'LSP', a: 75 },
{ y: 'M', a: 50 },
{ y: 'N', a: 75 },
{ y: 'SGP', a: 50 },
{ y: 'SP', a: 75 },
{ y: 'W', a: 57 }

它用于 morris.js 条形图数据。我该如何格式化它?

最佳答案

这需要修改的不仅仅是你的 sql,但这很容易实现;首先,使用AS keyword ,您可以为引用的列创建别名:

SELECT a.PARNT_CIVSTATUS AS 'y', count(a.PARNT_CIVSTATUS) AS 'a' 
FROM tbl_parnt a
LEFT JOIN tbl_intrvw b ON a.QN_NUMBR=b.QN_NUMBR
LEFT JOIN tbl_barangay c ON b.ZONE_NUM=c.BRGY_ZONE_NUM
GROUP BY a.PARNT_CIVSTATUS

假设我做得正确,上面的结果应该是 this output .

但是,这仍然留下了 php 方面的内容。鉴于您还没有发布您的 php,我将用我知道的两种方式来解决这个问题;已弃用的 mysql_* 函数和 PDO:

首先是已弃用的函数。如果您正在使用这些,我强烈建议不要这样做,并更改为 PDO 或 mysqli;无论如何,到代码!

$arr = array();
while ($row = mysql_fetch_assoc($result)) {
$arr[] = $row;
}

上面使用mysql_fetch_assoc() ,以及该文档页面中包含的示例。它获取结果的关联数组,假设它们类似于我提供的上述 SQLFiddle 演示,并将它们插入现有数组中;当然,这个数组将在 json_encode 中使用以产生所需的结果。

我所说的第二种方法,PDO,或者说 php 数据对象,是我所支持的一种方法;我不打算在这里进行完整的演示,因为这超出了本答案的范围,但我将在 PDO 中复制上述代码:

$arr = $stmt->fetchAll(PDO::FETCH_ASSOC);

在这里,我使用fetchAll()获取每一行,并使用常量 PDO::FETCH_ASSOC 来确保它只获取列名及其值;否则,您将得到上面的内容。

当然还有第三种选择,甚至第四种选择。 Mysqli,以及一些定制的数据库抽象层。我在这方面都没有经验,因此我不会提供任何示例,除了 php.net 的 mysqli quick start guide 。 .

关于javascript - 将 MYSQL 的 PHP 输出格式化为 morris.js 图表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25299173/

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