Ir para conteúdo

POWERED BY:

Arquivado

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

Raissam

Select para gráfico de barras empilhadas

Recommended Posts

Boa tarde,

 

Tenho um dúvida com relação a um trabalho que estou fazendo.

 

Estou utilizando a biblioteca de gráficos Rgraph para gerar alguns gráficos com informações provenientes do mysql,

 

Porém para o gráfico de barras empilhadas estou apanhando um pouco.

 

Minha saida do sql é a seguinte

 

Ano | Qtde. | Tipo

2000 | 3 | Em Análise

2001 | 1 | Em Aberto

2010 | 1 | Em Análise

2010 | 2 | Em Aberto

2011 | 1 | Em Análise

 

A saída que a biblioteca mostra como necessária para povoar o gráfico de barras empilhadas seria mais ou menos da sequinte forma [[3],[1],[1],[1,2],[1]].

 

Ao final o gráfico deverá ficar dessa forma.

 

| | ~1~ |

_3_ | _1_ | _2_ | _1_

------------------------------------------

2000 | 2001 | 2010 | 2011

 

Não estou conseguindo formatar no php essa saída do sql poderiam por gentileza me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que assim resolve?

<?php
   $string = "[[";
   for($x=0;$x<$rows;$x++)
   {
     if($x == 0)
     {
        $codigo = $rows['ano'];
     }
     else
     {
        if($rows['ano'] == $codigo)
        {
           $string .= $rows['qtde'].",";
        }
        else
        {
           $string .= $rows['qtde']."],[";
        }
     }
   }
   $string = substr($string, 0, -1);
   $string = $string."]";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Osmar,

 

Independente de ser o Rgraph, só preciso arrumar uma jeito de formatar a saída do Mysql para a string no formato que postei ali em cima. [[3],[1],[1],[1,2],[1]]

 

 

[3] = 2000

[1] = 2001

[1,2] Os dois parametros referentes a 2010 conforme exemplo abaixo.

2010 | 1 | Em Análise

2010 | 2 | Em Aberto

[1] = 2011

 

Não posso agrupar por ano senão eu perco a referência que mostrei para o ano de 2010.



  • Progjunior Daniel

o que você enviou gerou a seguinte saída:

[[,,]

 

De qualquer forma obrigado.

 

Vou mexer mais aqui nesse código para ver no que dá, mas qualquer outra idéia é bem-vinda.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não foi por causa do nome do campo? pois eu coloquei de acordo como você colocou lá.

 

Na ultima linha em vez de

 $string = $string."]";

coloque

 

 $string = $string."]]";

 

corrigi também em vez de

 

  $rows['ano']; e $rows['qtde'];

coloque

 

$rows[$x]['ano']; e $rows[$x]['qtde'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi aqui obrigado a todos..

while($row = mysql_fetch_assoc($result))
    {
        $data[$row['ano']][] = $row['Total'];
    }
    

    foreach($data as &$year)
    {
        $year = '[' . implode(',', $year) . ']';
    }
    $finalData = '[' . implode(',', $data) . ']';   

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.