Я хочу сделать многострочный график из этот пример.
Вместо того, чтобы использовать данные из файла CSV, я строю массив значений из базы данных:
$token_prices = sw::shared()->prices->getForTokenID($token_id);
$token_prices_array = array();
foreach ($token_prices as $token_price) {
$token_prices_array[] = [
"date" => $token_price['date'],
"close" => $token_price['close']
];
}
$second_token_prices = sw::shared()->prices->getForTokenID(3);
$second_token_prices_array = array();
foreach ($second_token_prices as $second_token_price) {
$second_token_prices_array[] = [
"date" => $second_token_price['date'],
"close" => $second_token_price['close']
];
}
$all = array_merge($second_token_prices_array, $token_prices_array);
foreach ($all as $datapoint) {
$result[$datapoint['date']] []= $datapoint['close'];
}
Вывод данных:
{"15-Jun-18":["8.4","0.14559"],"16-Jun-18":["8.36","0.147207"],"17-Jun-18":["8.42","0.13422"],"18-Jun-18":["8.71","0.146177"],"19-Jun-18":["8.62","0.138188"],"20-Jun-18":["8.45","0.128201"],
Моя проблема с подключением данных из базы данных в:
var tokendata = <?php echo json_encode($result) ?>;
data = tokendata;
data.forEach(function(d) {
d.date = parseTime(d.date);
d.close = +d.close;
d.open = +d.open;
});
Я получаю проблему здесь «data.forEach не является функцией» …
Как я могу это исправить, чтобы использовать данные из базы данных?
Здесь скрипка
Похоже, что вы встраиваете результаты php-страницы запроса в виде строки JSON — если вы хотите перебрать эти данные в виде массива, вам придется сначала проанализировать их обратно в объект Javascript.
Я предполагаю, что первый фрагмент кода работает на другом сервере, и поэтому $result
массив не доступен напрямую для вашего кода JavaScript — поэтому вы пытаетесь установить переменную в закодированное возвращаемое значение? Если это так, это не лучший способ вставить данные в скрипт вашей страницы, но это может сработать для вас:
var data = JSON.parse('<?php echo json_encode($result)?>');
или даже:
var data = eval(<?php echo json_encode($result)?>);
Оба метода предполагают, что ваш результат возвращается в виде допустимой строки json, поскольку нет проверки ошибок или логики try / catch. Я, честно говоря, не знаю, что на выходе json_encode()
Метод выглядит так, поэтому, если вы все еще не можете заставить его работать, обновите ваше сообщение с примером возвращенной строки.
Других решений пока нет …