gpt4 book ai didi

php - 将 mysql 结果集转换为要输入 HighCharts 的(名称,数据)对象

转载 作者:行者123 更新时间:2023-11-29 14:16:48 24 4
gpt4 key购买 nike

我正在使用HighCharts Bar graph将 mysql 结果集中的数据绘制成条形图。

现在我的查询结果集如下:

Name       Expense
-----------------
July 700.0000
August 450.0000
September 1700.0000

series HighCharts 的属性需要以下格式的数据来绘制图表

[
{name:"July",data:[700.0000]},
{name:"August",data:[450.0000]},
{name:"September",data:[1700.0000]}
]

所以我想到使用 json_encode($row) 将结果集转换为 JSON 对象。但我得到了以下输出:

[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]

疑问:

  1. 有没有办法以与 HighCharts 系列属性所需的格式完全相同的格式获取/转换结果集?
  2. 我还可以使用在 php block 中创建的对象直接进入 javascript 吗?假设我创建一个对象 $jsonNameData从我的结果集中。那么我可以在 javascript 中使用它作为

    series: <? echo $jsonNameData ?>

编辑:

我能够通过执行以下操作来解决 Q1:

$count = 0;
$strSeries = "[";
while($r = mysql_fetch_assoc($result)) {

if($count == 0){
$strSeries .= "{name:'" . $r['name'] . "',";
$strSeries .= "data:[" . $r['data'] . ']}';
$count = 1;
}
else {
$strSeries .= ",{name:'" . $r['name'] . "',";
$strSeries .= "data:[" . $r['data'] . ']}';
}
$rows[] = $r;
}
$strSeries .= "]";

将所需的字符串放入 $strSeries .

现在的问题是第二个问题。我分配的值是 $strSeries到 JavaScript 中的变量,但是当我将该变量用作

series: variableName

即使变量具有正确的值(通过警报检查),它也无法正确绘制图表。

最佳答案

没有机会运行下面的代码,但这应该可以工作或与此非常相似

$series=array();
while($item = mysql_fetch_assoc($result)) {
$serie=array(
"name" => $item['name'],
"data" => array(floatval($item['data']))
);
array_push($series,$serie);
}
echo json_encode($series);

建议始终坚持 json_encode()用于进行 jsonification。您可能想浏览this example在引用页面上了解 json_encode 特别是如何与数组一起使用

编辑:回答你的第二个问题。您可能会在 javascript 控制台中收到 highchart 错误 #14?看看这个问题Highcharts returning error 14

P.S.请不要将多个问题混合在一起,单独发布,同时更有效地使用 javascript 控制台和 SO 搜索等工具

关于php - 将 mysql 结果集转换为要输入 HighCharts 的(名称,数据)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520865/

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