Я создаю простой отчет, который я хочу связать с google api для создания линейного графика с данными, я довольно новичок в 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
.
print json_encode(graphdata());