2013-06-26 2 views
0

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

Как я могу преобразовать запрос 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

ответ

7

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

  1. Выборка данных из БД и назначить его в массив
  2. Затем используйте json_encode($result_array). Это приведет к результату json. Click here
  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); 
+1

Но я хочу, чтобы отправить json_encode ($ массив) в файл .json – DaftDev

+0

Вы хотите сохранить результат в файл .json, верно? –

+1

точно. Запишите результат из json_encode ($ array) и отправьте его в .json-файл, чтобы я мог получить его позже для вывода в диаграмме google – DaftDev

1

Преобразовать таблицу 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);