Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal eu nunca exibi nada dentro de um gráfico, estou completamente perdido, sei que tem que usar ajax para buscar as informações no banco e retornar um json, isso eu sei fazer, o problema mesmo é formatar esse retorno de acordo com as regras do gráfico:
Esse é o gráfico:
/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/TDZysFd.png&key=5c6d4e30519959ae1a1e15418fa72c4c6c51981879450a4e543c291251a0da28" width="799" />
Esse são os dados que vem do banco, o tipo de usuário, total de acessos e o mês.
/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/lvMNoXj.png&key=c4568d21ae76aa2decec05a01a60f97276ffdf5ee6438c3a5062764eb576299a" width="344" />
JS do Chartist:
new Chartist.Bar('#stacked-bar-chart', {
labels: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
series: [
[100, 200, 120, 280, 150, 300, 350, 200, 180, 350, 420, 500], // Total Access Users
[80, 150, 100, 180, 80, 250, 150, 280, 360, 450, 520, 650], // Total artists
[30, 80, 40, 90, 50, 100, 70, 160, 220, 240, 280, 350], // total studios
]
}, {
stackBars: true,
plugins: [
Chartist.plugins.tooltip()
]
}).on('draw', function (data) {
if (data.type === 'bar') {
data.element.attr({
style: 'stroke-width: 30px'
});
}
});
Tentei da seguinte forma com PHP:
public function get_monthly_accesses() {
$query = "select type, count(type) as accesses, month(date_login) as month from {$this->table_user_access} as ua
inner join {$this->table_user_details} as ud ON ud.user = ua.user
inner join {$this->table_user} as u ON ua.user = u.id
group by type, month(date_login) order by month asc";
$result = $this->query($query, true);
$response = array();
$response["labels"] = array();
$response["series"] = array();
$responseseries = array();
foreach ($result as $key) {
array_push($response["labels"], $key->month);
array_push($responseseries, $key->accesses);
}
array_push($response["series"], $responseseries);
return json_encode($response, JSON_NUMERIC_CHECK);
}
O retorno que tenho é esse:
string(45) "{"labels":[10,10,11,11],"series":[[1,2,6,1]]}"
O mês está repetindo nas labels e as series estão fora de ordem, cada serie representa um tipo de usuario e dentro de cada tem os acessos mensais.Alguém pode me dar uma força? Obrigado!
Carregando comentários...