Ir para conteúdo

Arquivado

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

KMRodrigo

Array em PHP

Recommended Posts

galera estou com dificuldades para gerar um vetor, eu sei o q é, sei fazer no portugol, mas tenho duvidas no php. Vou tentar explicar meu objetivo aqui e ai vcs vão entender melhor (acho)

 

Seguinte: Tenho uma biblioteca para gerar gráficos. O Gráfico é o seguinte:

Gráfico de linhas

Cada linha tem uma Cor que representa um Funcionário (linha azul = Carol)

Na Vertical tem o lucro gerado pelo funcionário(150,200,180)

Na horizontal tem os meses do ano (jan, fev, marc)

 

 

No gráfico a linha Azul, vai estar nos pontos (jan, 150), (Fev,200) e (Marc, 180)

Até aqui é simples tendo em vista os resultados só jogar nas funções da biblioteca de gráfico

$v='Carol';
$v = new XYDataSet();
$v->addPoint(new Point("jan", 150));
$v->addPoint(new Point("Fev", 200));
$v->addPoint(new Point("Marc", 180));

 

E o código gera o gráfico o problema é q são mais funcionários e os dados vem do banco. logo pensei:

 

V será um vetor.

 

V(Carol, Fernanda, Luane, Renata) porém esses valores do vetor vão vir do banco de dados através de um loop.

 

Resumindo é, como eu acrescento uma casa ao vetor com outro nome (eu n posso definir as casas do vetor pois se entrar um funcionário novo ele tem q automáticamente aparecer dps q for feito seu cadastro de usuário)

Compartilhar este post


Link para o post
Compartilhar em outros sites
como eu acrescento uma casa ao vetor com outro nome

se eu entendi certo, exemplo:

 

 

$arr = Array();
while( $dados = mysql_fetch_assoc( $query ) )
{
   $arr[ $dados->nome ] = $dados->funcionario;
}

assim a chave do array, é o nome do funcionario, e o valor outra coisa qq.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah cara, n sei, tentei elaborar mais ou menos o q eu queria e descobri q to com problema na lógica tmb. Perai ai vo pensar aqui já já posto

 

Edit.

 

Vamos la

Terei a variável $série[], $mes e $qtde formando o comando

$serie1->addPoint(new Point("$mes", $qtda)); //

 

as variáveis $mes e $qtde são adicionadas ao $serie, este série tem q ir trocando para os nomes dos funcionários, tipo dou um select no BD order by nome. Ai recebo o nome, Se o nome q vem do BD for igual ao $nome (anterior retirado do BD) o $serie continua como $serie[1] (esse 1 tem q ser o nome).

 

Se não for o $serie avança uma casa (serie[2] o qual vai receber o novo $nome).

 

Acho q é essa a lógica. ai ele vai adicionando os newpoint ao $serie

 

hehe acho q agora deu

Compartilhar este post


Link para o post
Compartilhar em outros sites
Se o nome q vem do BD for igual ao $nome (anterior retirado do BD) o $serie continua como $serie[1] (esse 1 tem q ser o nome).

 

Se não for o $serie avança uma casa (serie[2] o qual vai receber o novo $nome).

caraaaa.. num complica!

 

se você só pode ter 1 nome uma unica vez, basta fazer um GROUP BY no SQL, ou um DISTINCT() !

 

que tal ? bem mais simples ne?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara você tem razão

 

a questão é q quando pensei a primeira vez na lógica usava array, ai tentando explicar pra você montei outra, essa realmente n precisa do array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

calma.. faz uma coisa de cada vez.

 

primeiro gere o gráfico com dados estáticos, sem usar BD, entendeu ?

as libs de gráfico q já usei, se baseiam em arrays para montar as coordenadas dos dados.

 

 

então gere esses arrays, e sete os dados q precisar na mão.

fazendo uma espécie de rascunho. Deixe da forma q você precisa, ajuste as variaveis, os arrays e todas as entradas necessárias.

 

Tudo estático, com dados digitados no código.

Somente depois desse passo, é que você vai envolver o banco de dados no processo. Entendeu ?

Assim, você precisará se preocupar com menos coisas, e uma de cada vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$v='Carol';

$v = new XYDataSet();

$v->addPoint(new Point("jan", 150));

$v->addPoint(new Point("Fev", 200));

$v->addPoint(new Point("Marc", 180));

 

isso é bem simples com a biblioteca q uso

 

Esse código jah traceja a linha para Carol, agora recebe outro nome e traceja a próxima. O problema era mesmo no array, mas sem o array consigo fazer =)

 

Obrigado Brunow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas esse código ai, gera exatamente o gráfico que você quer ?

 

pq isso aqui:

$v='Carol';
$v = new XYDataSet();

não faz nenhum sentido, e a linha do $v = 'Carol', é inútil.

 

Pois você troca o valor da variavel por um objeto, inutilizando qq coisa q você tenha feito com a string Carol.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aff é isso sim. você tem razão... acontece q me confundio o exemplo da lib.

http://naku.dohcrew.com/libchart/pages/samplecode/

 

veja o item 4.3

 

Pensei q o valor de $V recebia o nome para preencher ali onde está "Produto1". Pois no outro gráfico dessa biblioteca era dessa maneira, porém o outro só recebia 2 parametros eu pensei q esse recebesse 3 mas só recebe 2 tmb, ai "produto1" é gerado automatico pela lib.

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.