Данные PHP mySql в файл JSON

Итак, мне нужно запросить мою базу данных по php, а затем преобразовать запрос в .json-файл, чтобы использовать Google Charts .

Как я могу преобразовать mysql-запрос через PHP в .json-файл примерно так:

{ cols: [{id: 'A', label: 'NEW A', type: 'string'}, {id: 'B', label: 'B-label', type: 'number'}, {id: 'C', label: 'C-label', type: 'date'} ], rows: [{c:[{v: 'a'}, {v: 1.0, f: 'One'}, {v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'}]}, {c:[{v: 'b'}, {v: 2.0, f: 'Two'}, {v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'}]}, {c:[{v: 'c'}, {v: 3.0, f: 'Three'}, {v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'}]} ], p: {foo: 'hello', bar: 'world!'} } 

PS: этот пример цитируется из Google

Вы можете использовать функцию json_encode .

  1. Извлечь данные из db и назначить их массиву
  2. Затем используйте json_encode($result_array) . Это приведет к результату json. кликните сюда
  3. Используйте функцию file_put_contents чтобы сохранить результат json в ваш .json-файл

Ниже приведен пример кода,

 $result = mysql_query(your sql here); $data = array(); while ($row = mysql_fetch_assoc($result)) { // Generate the output in desired format $data = array( 'cols' => .... 'rows' => .... 'p' => ... ); } $json_data = json_encode($data); file_put_contents('your_json_file.json', $json_data); 

конвертировать таблицу mysql в php-объект, используя mysql_fetch_object, а затем json с json_encode

mysql_fetch_object извлекает строку. поэтому используйте цикл для построения объекта таблицы.

код:

 $result = mysql_query("select * from mytable"); $table=array(); while($row=$mysql_fetch_object($result)){ $table.push($row); unset($row); } echo json_encode($table); в $result = mysql_query("select * from mytable"); $table=array(); while($row=$mysql_fetch_object($result)){ $table.push($row); unset($row); } echo json_encode($table); с $result = mysql_query("select * from mytable"); $table=array(); while($row=$mysql_fetch_object($result)){ $table.push($row); unset($row); } echo json_encode($table);