amchart получает данные json из mysql

Я пытаюсь составить график с амхартами. Но на данный момент у меня нет успеха. Вот как я генерирую свой файл 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 я получаю сообщение об ошибке:Сообщение об ошибке Chrome в консоли разработчика

1 ответ

Решение

Так как вы выводите числа типа "30.500", я могу только предполагать, что ваши значения хранятся в столбце типа VARCHAR в MySQL. И так получилось, что в конце они содержат дополнительные символы, вероятно, в результате неправильной очистки ваших данных.

Помимо очевидного решения, которое вы должны переключить на использование столбцов типа FLOAT, есть кое-что, что вы можете сделать сейчас, чтобы это исправить. Просто бросьте свой номер возврата в 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 );
Другие вопросы по тегам