当前位置: 首页 > 面试题库 >

将mysql结果集转换为(名称,数据)对象,以将其馈入HighCharts

姬英武
2023-03-14
问题内容

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

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

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

seriesHighCharts 的属性需要以下格式的数据才能绘制图形

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

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

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

疑问:

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

series: <? echo $jsonNameData ?>

编辑:

通过执行以下操作,我能够解决第一季度的问题:

$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。您可能需要在参考页上浏览此示例,以了解json_encode如何与特定数组一起工作

编辑:
回答您的第二个问题。您可能在JavaScript控制台中遇到了Highchart错误#14?看看这个问题Highcharts返回错误14

附言:请不要将多个问题混为一谈,分别发布,也要更有效地使用JavaScript控制台和SO搜索等工具



 类似资料:
  • 问题内容: 我正在使用HighCharts条形图将mysql结果集中的数据绘制到条形图中。 现在,我的查询结果如下: HighCharts 的属性需要以下格式的数据才能绘制图形 所以我想到了使用将结果集覆盖到JSON对象中。但是我得到以下输出: 疑问: 有没有一种方法可以以与HighCharts的series属性所需的格式完全相同的格式来获取/转换结果集? 我还可以使用在php块中创建的对象直接进

  • 问题内容: 我的DAO中有一个hibernate的呼叫,看起来像这样 我收到一条错误消息,说我无法将结果列表转换为模型类型“关联”。我不明白为什么会这样。我只返回关联表中的字段。 问题答案: 您需要使用来指定要转换为结果的实体类,因为您正在执行对实体一无所知的SQL查询: 也可以看看: 18.1.2。实体查询

  • 问题内容: 我刚刚为组织此表中第70页上显示的查询层次结构数据的“关闭表”方法做了“更新/添加/删除”部分:http ://www.slideshare.net/billkarwin/sql-antipatterns- strike -背部 我的数据库如下所示: 表类别: 表类别树: 但是,从单个查询获取整棵树作为多维数组时,我遇到了一个问题。 这是我想回来的东西: 更新: 找到了此链接,但是我仍

  • 问题内容: 我需要将结果集转换为字符串数组。我正在从数据库中读取电子邮件地址,我需要能够像这样发送它们: 这是我的阅读电子邮件地址的代码: MyOutput是: 我需要这样: 我正在使用Oracle 11g。 问题答案: 获得所需的输出: 替换这些行 通过

  • 我有程序: 我的问题是,如何从第一个查询中获取ID并在第二个查询中使用它们,或者我可以通过某种方式声明变量并从第一个查询中选择到这个变量ID中,然后在第二个查询中使用这个变量?我的任务找不到解决方法...请帮帮我

  • 问题内容: 如果我运行,Laravel会执行以下烦人的事情,即向集合中的每个模型添加键,如下所示: 我如何摆脱“ 4”和“ 7”,所以它是我的对象的数组? 我运行的代码是: 问题答案: 问题在于该方法不会为基础集合数组重新设置密钥。因此,Collection仍表示一个数组,只是您的数组看起来像这样: 尽管这在PHP中是一个非常有效的数组,但在JSON中却不是一个合适的数组。由于无法将其表示为JSO