2012-04-30 18 views
7

Mi occupo di diagrammi di dati elevati con dati dinamici (valori recuperati dal database). Scrivendo una query sono stato in grado di recuperare i seguenti dati dalla tabellacome utilizzare json_encode

Item 2011 2012 
pen  5  7 
pencil 4  20 
eraser 6  43 

voglio per memorizzare le informazioni di cui sopra nel seguente struttura e passarlo a un'altra pagina

[{ name:'pen', data: [5,7]},{ name:'pencil', data: [4,20]},{ name:'eraser', data: [6,43]}]"; 

voglio spingere i dati sopra riportati nel diagramma di calcolo dettagliato.

C'è un modo che posso generare in questo formato? Ho provato a utilizzare json_encode ma non riesco ad avere successo. Posso ottenere questo utilizzando json_encode?

Updated ho provato in questo modo

while($row = mysql_fetch_assoc($result)) 
    { 
    $rows[]= $row; 

    } 
echo json_encode($rows); 

e ottenuto

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}] 
+2

'json_encode' codifica JSON, non l'espressione oggetto Javascript (chiavi non quotate) che hai lì. Non che importi, però. – mario

+2

Sembra che un approccio migliore sarebbe la serializzazione dei dati. – nickb

+1

@JohnConde ho aggiornato alcuni info.check out – Anil

risposta

17

json_encode è un metodo pratico per convertire un array in formato JSON. Per avere l'output che hai fornito, avrai bisogno di una serie di array. Ogni sotto-array dispone di tasti "nome" e "dati", dove "nome" è la colonna Item, e "dati" è un altro array contenente i valori da 2011 e 2012.

$results = mysql_query("..."); 
$arr = array(); 

while ($row = mysql_fetch_assoc($results)) 
{ 
    $name = $row['Item']; 
    $data = array($row['2011'], $row['2012']); 

    $arr[] = array('name' => $name, 'data' => $data); 
} 

echo json_encode($arr); 
3
  1. Loop attraverso i risultati del database e mettere i risultati in un array
  2. JSON codificare l'array
Problemi correlati