Sto usando jquery flot charts per rappresentare i miei dati. Ecco l'esempio JSFiddle creato che mostra come dovrebbero apparire i JSON richiesti per il grafico.Creare JSON dinamico da foreach
La fonte è da una procedura immagazzinata MySql che ha l'esempio seguente output:
devo rappresentare nel grafico, i valori count
impilati per diverse s innumber
' sull'asse y , i valori name
sull'asse xe in un altro grafico i valori per outnumber
. (in barre impilate).
-Le serie di dati devono corrispondere, pertanto le etichette specifiche devono essere visualizzate nei confronti dei clienti.
Ecco il PHP che ho finora:
$query = $this->db->query("call GetAllCustomersV2($id, $year, $month, $day)");
$customers = $query->result_array();
foreach ($customers as $customer) {
if($customer['innumber'] != null){
$chartInbound['name'] = $customer['name'];
$chartInbound['label'] = $customer['innumber'];
$chartInbound['count'] = $customer['count'];
$chartInbound['customerid'] = $customer['id'];
array_push($out['chartInbound'], $chartInbound);
}
if($customer['outnumber'] != null){
$chartOutbound['name'] = $customer['name'];
$chartOutbound['label'] = $customer['outnumber'];
$chartOutbound['count'] = $customer['count'];
$chartOutbound['customerid'] = $customer['id'];
array_push($out['chartOutbound'], $chartOutbound);
}
}
L'uscita del print_r($out['chartInbound']);
è:
Array
(
[0] => Array
(
[name] => 1st Online Solutions
[label] => 01-02
[count] => 577
[customerid] => 129
)
[1] => Array
(
[name] => Bookngo
[label] => 01-02
[count] => 2
[customerid] => 95
)
[2] => Array
(
[name] => Boutixury
[label] => 07
[count] => 1
[customerid] => 14
)
[3] => Array
(
[name] => Cruise Village
[label] => 01-02
[count] => 16
[customerid] => 25
)
[4] => Array
(
[name] => Cruise Village
[label] => 00
[count] => 1
[customerid] => 25
)
[5] => Array
(
[customer] => Cruise Village
[label] => 07
[countInbound] => 16
[minsInbound] => 125
[customerid] => 25
)
...................
)
L'uscita del print_r(json_encode($out['chartInbound']));
è:
[
{
"name": "1st Online Soultions"
"label": "01-02",
"count": "577",
"customerid": "129"
},
{
"name": "Bookngo"
"label": "01-020",
"count": "2",
"customerid": "129"
},
{
"name": "Boutixury"
"label": "07",
"count": "1",
"customerid": "14"
},
{
"name": "Cruise Village"
"label": "07",
"count": "16",
"customerid": "25"
},
.................
]
ma questo non è molto utile.
Q: Come posso creare i JSON dinamici mostrati nel jsfiddle precedente, dai dati della query?
I dati nella tua domanda (i dati di MySql) e i dati nel tuo jsfiddle corrispondono ?? – Jeff
il formato di 'chartData' e' chartTicks' dovrebbe essere lo stesso e i loro valori dovrebbero essere popolati dinamicamente – alex
Puoi modificare il processo memorizzato, o è corretto? È possibile attaccare i dati direttamente, tramite una frase SQL? In tal caso, potresti fornire la struttura dei dati, forse potresti semplicemente modificare il modo in cui recuperi i dati per ottenere i dati come se fossero JSON. – Chococroc