Raissam 0 Denunciar post Postado Março 10, 2014 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
Progjunior Daniel 34 Denunciar post Postado Março 10, 2014 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 L Lima 51 Denunciar post Postado Março 10, 2014 Nunca mexi com Rgraph mas acho que no SQL você teria que agrupar por ano. Compartilhar este post Link para o post Compartilhar em outros sites
Raissam 0 Denunciar post Postado Março 10, 2014 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 Danielo 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
Progjunior Daniel 34 Denunciar post Postado Março 11, 2014 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
Raissam 0 Denunciar post Postado Março 11, 2014 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