Ir para conteúdo

POWERED BY:

Arquivado

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

Dee

[Resolvido] Array Com Banco de Dados

Recommended Posts

Galera. Não sei muito Array(), mas estou aprendendo.

Me confrontei com uma situação na qual tive que recorrer a ele.

Estou fazendo gráficos dinâmicos, que se atualizam de acordo com os dados no banco de dados.

 

Eu preciso do seguinte:

$consulta = "select distinct(funcionarios.funcionario), atualizacao.funcionario_codigo, atualizacao.versao, count(atualizacao.versao) as nversao from atualizacao inner join funcionarios on atualizacao.funcionario_codigo = funcionarios.funcionario_codigo where atualizacao.versao = $numero_versao group by atualizacao.funcionario_codigo,funcionarios.funcionario,atualizacao.versao order by funcionarios.funcionario asc";
	$exe_consulta = mssql_query($consulta);
	$i = 0;
	while ($i < $lin_consulta = mssql_num_rows($exe_consulta))
	{
		$arr = $arr + mssql_result($exe_consulta,$i,'funcionario');
		$i++;
		}

Como eu faço para fazer com que os nomes dos funcionários entrem em uma variável para que depois eu posso jogar essa variável aqui:

$plot->SetLegend(array($arr.","));

Quero que apareça os nomes nesse array. E somente está trazendo 0(zero).

Como eu faço ??

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu Isso Mano

 

Fatal error: Unsupported operand types in D:\web\LocalUser\salcam\www\versao_sigla\grafico_versao_func.php on line 18

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse sinal de + está errado.

 

Você não mescla dois arrays operando como se fossem inteiros, e sim com array_merge()

 

Troca aquela linha por isso:

 

$arr[] = array_merge($arr,mssql_result($exe_consulta,$i,'funcionario'));
Um dica seria não usar mysql_result() e sim mysql_fetch_assoc()

 

É bem mais fácil a sintaxe de uso e não necessita desse $i incrementador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora apareceu isso.

 

Warning: array_merge() [function.array-merge]: Argument #2 is not an array in D:\web\LocalUser\salcam\www\versao_sigla\grafico_versao_func.php on line 18

 

E aproveitando como que seria usando o mssql_fetch_assoc ?

Do mesmo modo como se usa o mssql_fecth_array ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código está assim:

 

<?php
//incluindo a classe phplot
include 'conecta.php';
include 'phplot/phplot-5.0.4/phplot.php';
//Matriz utilizada para gerar os graficos 
$numero_versao = $_GET['cod'];

	$query = "select count(versao) as tversao from atualizacao where versao = $numero_versao";
	$exe_query = mssql_query($query);
	$total_versao = mssql_result($exe_query,0,'tversao');
	
	$consulta = "select distinct(funcionarios.funcionario), atualizacao.funcionario_codigo, atualizacao.versao, count(atualizacao.versao) as nversao from atualizacao inner join funcionarios on atualizacao.funcionario_codigo = funcionarios.funcionario_codigo where atualizacao.versao = $numero_versao group by atualizacao.funcionario_codigo,funcionarios.funcionario,atualizacao.versao order by funcionarios.funcionario asc";
	$exe_consulta = mssql_query($consulta);
	$i = 0;
	$arr = array();
	while ($i < $lin_consulta = mssql_num_rows($exe_consulta))
	{
		$arr[] = array_merge($arr,mssql_result($exe_consulta,$i,'funcionario'));
		$i++;
	}
   	
$data = array(
  array($numero_versao, 40, 2, 4),
);

#Instancia o objeto e setando o tamanho do grafico na tela
$plot = new PHPlot(600,400);
#Tipo de borda, consulte a documentacao para ver opcoes
$plot->SetImageBorderType('plain');
#Tipo de grafico, nesse caso barras, existem diversos(pizza...)
$plot->SetPlotType('bars');
#Tipo de dados, nesse caso texto que esta no array
$plot->SetDataType('text-data');
#Setando os valores com os dados do array
$plot->SetDataValues($data);
#Titulo do grafico
$plot->SetTitle('Percentual de Atualizações Nesta Versão');
# Legenda, nesse caso serao tres pq o array possui 3 valores que serao apresentados
$plot->SetLegend(array($arr));
# Metodos utilizados para marcar labes, necessario mas nao se aplica neste ex. (manual) :
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
#Gera o grafico na tela
$plot->DrawGraph();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é o formato que você precisa do array? é só colocar o valor que vem do banco e o índice sequencial?

 

Se for, pode fazer assim

while ($rs = mssql_fetch_assoc($exe_consulta))
	{
		$arr[] = $rs['funcionario'];
	}

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse array eu estou trazendo Nomes(String no caso neh)

 

mas eu preciso mostrar isso numa legenda.. que eh legenda do gráfico

mas está aparecendo a palavra Array, em vez de os nomes que estou pegando nesse while, e colocando na variavel $arr entendeu

 

como faço para mostrar os nomes aqui ?

 

$plot->SetLegend(array($arr));

 

é só colocar a variavel que está dentro do while no array ? ou tem que fazer outra coisa ?

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.