Я создаю простой отчет, который я хочу связать с API Google, чтобы сгенерировать линейный график с данными, я довольно новичок в php, и я не могу получить свои данные в формате json. Согласно документации Google, формат JSON должен быть
"cols": [
{"id":"","label":"Topping","pattern":"","type":"string"},
{"id":"","label":"Slices","pattern":"","type":"number"}
],
"rows": [
{"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
{"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
]
}
Я построил запрос и протестировал его сам, и он отлично работает, моя проблема заключается в построении массива, чтобы я мог генерировать правильный код JSON. Код, который я использую для создания этого массива и кодирования в json:
function graphdata()
{
$array['cols'][] = array(
'id' => '',
'label' => 'DateCreated',
'pattern' => '',
'type' => 'string'
);
$array['cols'][] = array(
'id' => '',
'label' => 'UnitPrice',
'pattern' => '',
'type' => 'number'
);
$result = sqlsrv_query($conn, $query);
while($row = sqlsrv_fetch_object($result)){
$array['rows'][] = array (
'c' =>array(
array ('v' => $row->DateCreated->format('d-m-Y'), 'f' => ''),
array ('v' => $row->UnitPrice, 'f' => ''),
)
);
}
return $array;
}
print json_encode(graphdata());
Может кто-нибудь помочь с созданием этого массива, он, кажется, не работает вообще, но, насколько я понимаю, нет ничего, что выскакивает как неправильное, но говоря, что я очень новичок в php и, без сомнения, я сделал это неправильно, и это легко исправить.
Как примечание, я использую MSSQL.
Дополнительная информация после размещения сообщений об ошибках:
Примечание: неопределенная переменная: sqlsrv_query () ожидает, что параметр 1 будет ресурсом
Запросы к вашей базе данных не работают, потому что $conn
переменная не определена в области действия функции.
Чтобы решить это, объявить его глобальным:
global $conn;
или добавить его в свою функцию в качестве аргумент:
function graphdate($conn)
То же самое касается вашего $query
переменная.
Других решений пока нет …