Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Da Silva Valenga

Somar resultados agrupando por data

Recommended Posts

Boa tarde, tenho uma tabela com uma coluna log_status, nesta coluna eu recebo 3 tipos de valores: (1,2,3).

 

1=ok

2=info

3=erro.

 

Estou tentando fazer um gráfico, e reunir os mesmos status por dia. Consegui somar os resultados criando um if no PHP, porem nao consigo agrupar por data, alguém consegue me ajudar?

 

O resultado do meu código é esse:

 

{ day: '2014-05-11', a: 1, b: 0, c: 0 },
{ day: '2014-05-12', a: 0, b: 1, c: 0 },
{ day: '2014-05-12', a: 1, b: 0, c: 0 },
{ day: '2014-05-12', a: 0, b: 0, c: 1 },
{ day: '2014-05-12', a: 0, b: 0, c: 1 },
{ day: '2014-05-13', a: 1, b: 0, c: 0 },
{ day: '2014-05-13', a: 0, b: 0, c: 1 },
{ day: '2014-05-13', a: 1, b: 0, c: 0 },

 

precisava de uma soma dos resultados por dia, tipo assim:

 

{ day: '2014-05-11', a: 1, b: 0, c: 0 },

+-----------------------------------------

{ day: '2014-05-11', a: 1, b: 0, c: 0 },

 

{ day: '2014-05-12', a: 0, b: 1, c: 0 },
{ day: '2014-05-12', a: 1, b: 0, c: 0 },
{ day: '2014-05-12', a: 0, b: 0, c: 1 },
{ day: '2014-05-12', a: 0, b: 0, c: 1 },

+-----------------------------------------

{ day: '2014-05-12', a: 1, b: 1, c: 2 },

 

{ day: '2014-05-13', a: 1, b: 0, c: 0 },
{ day: '2014-05-13', a: 0, b: 0, c: 1 },
{ day: '2014-05-13', a: 1, b: 0, c: 0 },

+-----------------------------------------

{ day: '2014-05-13', a: 2, b: 0, c: 1 },

 

 

CÓDIGO:

 

$query = mysql_query("SELECT DATE(log_data_ultima_atualiza) AS data, log_status FROM logs ORDER BY data") or die(mysql_error());
while ( $result = mysql_fetch_array($query) ) {
$status = $result['log_status'];
if ( $status == 1 ){
$ok = 0;
$warning = 0;
$erro = 0;
$ok = $ok + 1 ;
} else if ( $status == 2 ) {
$ok = 0;
$warning = 0;
$erro = 0;
$warning = $warning + 1;
} else if ( $status == 3 ) {
$ok = 0;
$warning = 0;
$erro = 0;
$erro = $erro + 1;
}
echo "{ day: '".$result['data']."', a: ".$ok.", b: ".$warning.", c: ".$erro." },";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  1. Você pode utilizar um vetor para agrupar a data, aí soma os valores.

Outra opção é realizar a consulta diretamente no banco de dados utilizando um [inline]GROUP BY DATE(log_data_ultima_atualiza), log_status[/inline] juntamente com o SUM(log_status)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.