【问题标题】:amchart getting json data from mysqlamchart 从 mysql 获取 json 数据
【发布时间】:2015-07-03 18:42:36
【问题描述】:

我尝试用 amcharts 制作图表。但目前我没有成功。这就是我生成 json 文件的方式:

while ( $row = mysql_fetch_assoc( $result ) ) {
echo $prefix . " {\n";
echo '  "category": "' . $row['tstamp'] . '",' . "\n";

echo '  "value": ' . $row['temp'] . '' . "\n";
echo " }";
$prefix = ",\n";
}
echo "\n]";

html源代码可以在这里查看: http://bitfreun.de/werte.php

在 Chrome 控制台中我收到一个错误:

【问题讨论】:

  • 构建你自己的json。构建一个php数组,然后json_encode()它。
  • 我为什么不这样做?
  • 你在这里的确切原因......如果你正在构建自己的 json 字符串,那么你有责任保证你正在生成 VALID json。如果您使用 json_encode(),那么所有这些工作都会自动为您完成。

标签: php mysql json amcharts


【解决方案1】:

由于您在输出中得到像“30.500”这样的数字,我只能假设您的值存储在 MySQL 的 VARCHAR 类型列中。因此,它们最后会包含额外的符号,这可能是由于未能正确清理您的数据输入造成的。

除了您应该改用 FLOAT 类型列的明显解决方案之外,您现在可以采取一些措施来解决此问题。只需将您的退货编号转换为浮点数:

while ( $row = mysql_fetch_assoc( $result ) ) {
  echo $prefix . " {\n";
  echo '  "category": "' . $row['tstamp'] . '",' . "\n";
  echo '  "value": ' . ( (float) $row['temp'] ) . "\n";
  echo " }";
  $prefix = ",\n";
}
echo "\n]";

让 PHP 构建您的 JSON 也是一个好主意:

$data = array();
while ( $row = mysql_fetch_assoc( $result ) ) {
  $data[] = array(
    'category' => $row['tstamp'],
    'value' => (float) $row['temp']
  );
}
echo json_encode( $data );

【讨论】:

  • 非常感谢!有谁知道如何编写 javascript 部分,小时值在图表上:bitfreun.de/werte.php
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 2016-09-22
  • 2015-03-30
  • 1970-01-01
  • 2011-06-16
相关资源
最近更新 更多