Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Pereira de Barros

Array Gráfico PHP

Recommended Posts

Boa noite,

 

estou ha algumas semanas tentando criar um array que exiba nesse modelo de gráfico minhas vendas agrupadas por centro de custo vs vendedor conforme os exemplos abaixo:

 

O que não consigo fazer é uma consulta mysql php para formar as séries abaixo.

categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],        data = [{            y: 55.11,            color: colors[0],            drilldown: {                name: 'MSIE versions',                categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'],                data: [10.85, 7.35, 33.06, 2.81],                color: colors[0]            }        }, {            y: 21.63,            color: colors[1],            drilldown: {                name: 'Firefox versions',                categories: ['Firefox 2.0', 'Firefox 3.0', 'Firefox 3.5', 'Firefox 3.6', 'Firefox 4.0'],                data: [0.20, 0.83, 1.58, 13.12, 5.43],                color: colors[1]            }        }, {            y: 11.94,            color: colors[2],            drilldown: {                name: 'Chrome versions',                categories: ['Chrome 5.0', 'Chrome 6.0', 'Chrome 7.0', 'Chrome 8.0', 'Chrome 9.0',                    'Chrome 10.0', 'Chrome 11.0', 'Chrome 12.0'],                data: [0.12, 0.19, 0.12, 0.36, 0.32, 9.91, 0.50, 0.22],                color: colors[2]            }        }, {            y: 7.15,            color: colors[3],            drilldown: {                name: 'Safari versions',                categories: ['Safari 5.0', 'Safari 4.0', 'Safari Win 5.0', 'Safari 4.1', 'Safari/Maxthon',                    'Safari 3.1', 'Safari 4.1'],                data: [4.55, 1.42, 0.23, 0.21, 0.20, 0.19, 0.14],                color: colors[3]            }        }, {            y: 2.14,            color: colors[4],            drilldown: {                name: 'Opera versions',                categories: ['Opera 9.x', 'Opera 10.x', 'Opera 11.x'],                data: [ 0.12, 0.37, 1.65],                color: colors[4]            }        }]

grafico em funcionamento:

 

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/pie-donut/

 

 

Ninguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está em javascript, tenta usar um Ajax com retorno em json. Ele vai retornar uma array com seus dados do banco, com isso você irá conseguir montar o gráfico do jeito que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que não sei como montar esse array por exemplo:

Coluna - vendedor

Coluna - centro_custo

 

Como deve ficar:

centro_custo1

 

vendededor A, vendededor B,vendededor C

 

 

centro_custo2

 

vendededor D, vendededor E,vendededor F

 

 

E como está vindo:

 

centro_custo1

 

vendededor A, vendededor B,vendededor C

 

 

centro_custo2

 

vendededor A, vendededor B,vendededor C,vendededor D, vendededor E,vendededor F

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é minha query:

SELECT count(*) as Total,
							centro_custo,
							vendedor
							FROM contratos
							WHERE data_cad = '2014-09-29'
							GROUP BY vendedor, centro_custo

Quero popular aqui:

{
y: Total_centro_custo1,
color: colors[0],
drilldown: {
name: 'centro_custo1',
categories: ['vendedorA', 'vendedorB', 'vendedorC',],
data: [10.85, 7.35, 33.06],
color: colors[0]
}
},

{

y: Total_centro_custo2,
color: colors[0],
drilldown: {
name: 'centro_custo2',
categories: ['vendedorD', 'vendedorE', 'vendedorF',],
data: [10.85, 7.35, 33.06],
color: colors[0]
}
}


Basicamente minha estrutura é essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é só montar o loop da forma que está ali:

$sql = "SELECT count(*) as Total, centro_custo, vendedor FROM contratos WHERE data_cad = '2014-09-29' GROUP BY vendedor, centro_custo";
$qr = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($qr);
$contar = 1;
while ($rs = mysql_fetch_assoc($qr)) {
    $virgula = ( $total !== $contar ) ? ',' : '';
    echo "
        {
            y: Total_centro_custo1,
            color: colors[0],
            drilldown: {
            name: 'centro_custo1',
            categories: ['vendedorA', 'vendedorB', 'vendedorC',],
            data: [10.85, 7.35, 33.06],
            color: colors[0]
        } " . $virgula;
    $contar++;
}

Só trocar as informações resgatando as informações do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar


Quase isso.

$sql = "SELECT count(*) as Total, centro_custo, vendedor FROM contratos WHERE data_cad = '2014-09-29' GROUP BY vendedor, centro_custo";
$qr = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($qr);
$contar = 1;
while ($rs = mysql_fetch_assoc($qr)) {
    $virgula = ( $total !== $contar ) ? ',' : '';
    echo "
        {
            y: $total_geral_centro_custo,
            color: colors[0],
            drilldown: {
            name: '$variavel_centro_custo',
            categories: ['$vendedores_centro_custo'], // como colocar os vendedores agrupados por centro de custo nessa linha?
            data: [$total_por_vendedor_centro_custo], // como colocar o total dos vendedores agrupados por centro de custo nessa linha?
            color: colors[0]
        } " . $virgula;
    $contar++;
}

Isso de gerar o loop eu ja havia conseguido, meu problema está em trazer os vendedores agrupados por centro de custo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha consulta na DB vem assim:

tabela.png

Preciso que se agrupe como no exemplo que passei assim:

{ y: 6, color: colors[4], drilldown: { name: 'ATIVO MANHA', categories: ['DEBORA', 'MARCELA', 'NATALIA', 'SERGIO2', 'WILLIAM'], data: [1, 2, 1, 1, 1], color: colors[4] } },

 

{ y: 5, color: colors[2], drilldown: { name: 'IVANILDO', categories: ['EDINARA2', 'RAFAEL3', 'WILLIAM D2D'], data: [2, 1, 2], color: colors[2] } },

 

{ y: 3, color: colors[1], drilldown: { name: 'RECEPTIVO', categories: ['IZAURA', 'JANAINA2'], data: [2, 1], color: colors[1] } },

 

{ y: 5, color: colors[3], drilldown: { name: 'RODRIGO', categories: ['ANDRE', 'JONATAS', 'ROBERTO3', 'RODRIGO'], data: [2, 1, 1, 1], color: colors[3] } }

 

Agrupado por vendedores, entende,acho que preciso de um array ou algo sim que não estou conseguindo montar.

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.