Ir para conteúdo

POWERED BY:

Arquivado

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

patriclrv07

[Resolvido] Como fazer Array com Query

Recommended Posts

Ola Pessoal,

 

Sou novo aqui no forum, queria tirar uma duvida, se alguem puder me ajudar, agradeço.

 

 

Tenho 2 query em SQL.

 

SQL001 = "SELECT NN2_CODIGO, NN2_NOME, NN3_SAFRA, SUM(NN3.NN3_HECTAR) AREA, 
		SUM(CASE WHEN NN3.NN3_STATUS='F' THEN NN3.NN3_HECTAR ELSE 0 END) AREA_COLHIDA
		FROM NN2010 NN2, NN3010 NN3
		WHERE NN2.NN2_CODIGO = NN3.NN3_FAZ
		AND NN3.NN3_SAFRA = '201101'
		AND NN2.D_E_L_E_T_ = ' ' 
		AND NN3.D_E_L_E_T_ = ' ' 
		GROUP BY NN2_CODIGO, NN2_NOME, NN3_SAFRA
		ORDER BY NN2_CODIGO";

$sql002 = "SELECT NPA_SAFRA, NPA_FAZ, COUNT(NPA_CODIGO) QTDCARGA, SUM(NPA_QTDEST)/60 PESOEST  
		FROM NPA010
		WHERE NPA_SAFRA = '$cSafra'
		AND NPA_FAZ = '$cFaz'
		AND NPA_FECHAD = 'N'
		AND D_E_L_E_T_ = ''
		GROUP BY  NPA_SAFRA, NPA_FAZ ";

 

 

nao sei como fazer um array para juntar as 2, preciso que quando executada a 1 query, ele pegue o resultado e mostre, ai ao lado ele mostre os valores da segunda query, o relacioamento pode ser feito via [ SAFRA (NN3_SAFRA - TA NA PRIMEIRA QUERY) E DEPOIS POR FAZENDA (NN2_CODIGO) PRIMEIRA QUERY.

 

 

EXEMPLO

 

OS DADOS MOSTRADOS NA PRIMEIRA QUERY

NN2_CODIGO, NN2_NOME, NN3_SAFRA

01, FAZENDA A, 201101

02, FAZENDA B, 201101

03, FAZENDA C, 201101

04, FAZENDA D, 201101

 

AI CONFERE LINHA POR LINHA E CASO CODIGO SEJA IGUAL A VALOR QUE SERIA O CAMPO NPA_FAZ NA QUERY2 E SAFRA SERIA NPA_SAFRA NA TABELA 2 MOSTRARIA ASSIM ENTAO..

 

NN2_CODIGO, NN2_NOME, NN3_SAFRA, QTDCARGA, PESOEST

01, FAZENDA A, 201101, 0, 0

02, FAZENDA B, 201101, 3, 1750

03, FAZENDA C, 201101, 2, 750

04, FAZENDA D, 201101, 0, 0

 

* AONDE TEM 0 E QUE NAO TEM REGISTRO NA TABELA NA SEGUNDA QUERY

 

 

SE ALGUEM PUDER ME AJUDAR..

AGRADECO

 

 

OBRIGADO

Compartilhar este post


Link para o post
Compartilhar em outros sites

conhece o LEFT JOIN ? [se não, pesquise sobre]

 

no teu caso, acredito que seja perfeito aplicar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew William,

 

ja tentei juntar as 2 query, mas nao vem os resultados certos.

 

tem alguma outra maneira.

 

valew gremio10,

 

mas isso nao me ajudou em nda.. eu ja li isso. mas nao consegui fazer ainda..

 

tem mais alguma ideia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta funcao ele da certo. so que assim. ele leu todo o conteudo. como faco para pegar o codigo da fazenda e usar na mostrar os dados da segunda queyr

 

 

mysql_fetch_Array n deu certo??

 

$qry = mysql_query ("select * from tabela1")

mysql_fetch_array ("$qry");

 

n fuicona pra você??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu quer pegar o codigo da pesquisa da query 1 e usar como condição na query 2 ?

 

se for isso :

 

$qry = mysql_query("SELECT id FROM minhaTBL WHERE nome LIKE 'Felipe'");
$data = mysql_fetch_array($qry);

$qry2 = mysql_query("SELECT nome FROM outraTBL WHERE minhaTBL_id = '{$data['id']}'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, fiz o seguinte codigo abaixo ref a minha duvida acima, so que nao mostra os dados corretos.. vou postar ao longo do codigo..

 

<?php include("../inc/cx.php");?>

<table border="0" width="100%">
<tr>
	<td align="center"><b><font face="Verdana" size="2">Fazenda</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Área(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Colhido(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Produção(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Estimado(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média Geral(sc/ha)<?php
$conexão = mssql_connect("$xservidor", "$xuser", "$xsenha_db") or die("Não foi possível a conexão com o servidor");
mssql_select_db("$xbd") or die("Não foi possível selecionar o banco de dados");

//###############################

$sql001 = " SELECT NN2_CODIGO, NN2_NOME, NN3_SAFRA, SUM(NN3.NN3_HECTAR) AREA, 
			SUM(CASE WHEN NN3.NN3_STATUS='F' THEN NN3.NN3_HECTAR ELSE 0 END) AREA_COLHIDA
			FROM NN2010 NN2, NN3010 NN3
			WHERE NN2.NN2_CODIGO = NN3.NN3_FAZ
			AND NN3.NN3_SAFRA = '201101'
			AND NN2.D_E_L_E_T_ = ' ' 
			AND NN3.D_E_L_E_T_ = ' ' 
			GROUP BY NN2_CODIGO, NN2_NOME, NN3_SAFRA
			ORDER BY NN2_CODIGO ";

$result001 = mssql_query($sql001);
while($consulta001 = mssql_fetch_array($result001)) {



//################################

$cSafra = $consulta001['NN3_SAFRA'];
$cFaz = $consulta001['NN2_CODIGO'];

$sql003 = " SELECT NPA_SAFRA, NPA_FAZ, COUNT(NPA_CODIGO) QTDCARGA, SUM(NPA_QTDEST)/60 PESOEST  
		FROM NPA010
		WHERE NPA_SAFRA = '$cSafra'
		AND NPA_FAZ = '$cFaz'
		AND NPA_FECHAD = 'N'
		AND D_E_L_E_T_ = ''
		GROUP BY  NPA_SAFRA, NPA_FAZ ";

	$result003 = mssql_query($sql003);
	while($consulta003 = mssql_fetch_array($result003)) {

?>

</td>
</tr>


<tr>
	<td align="center">
	<p align="left"><? echo $consulta001['NN2_CODIGO']; ?> - <? echo $consulta001['NN2_NOME']; ?></td>
	<td align="center"><?php echo number_format($consulta001['AREA'], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo number_format($consulta001['AREA_COLHIDA'], 2, ', ', '.'); ?></td>
	<td align="center">a</td>
	<td align="center">b</td>
	<td align="center">c</td>
	<td align="center">d</td>
	<td align="center"><?php echo number_format($consulta003[PESOEST], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo $consulta003['QTDCARGA']; ?></td>
	<td align="center">e</td>
</tr>
<?php } }
mssql_close ?>

</table>

 

 

NA QUERY AONDE TEM SQL001 tem 11 registros, e na QUERY SQL003 TEM 4. E O RESULTADO E SOMENTE AS 4.

PELO QUE ENTENDI ELE TA FAZENDO FAZENDO O INVERSO PEGANDO A QUERY SQL003 E RELACIONANDO COM OS RESULTADOS DA QUERY SQL001.

 

a pergunta é.. estou fazendo certo ou onde esta meu erro????

 

valew pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, fiz funcionar agora pouco.. so que falta colocar outra query??? como fazer??

 

Como colocar esta outra query no codigo abaixo.

 

 

//#######################################################################################

$todos2 = array();

$sql003 = " SELECT NPO_SAFRA, NPO_FAZ, COUNT(NPO_CODIGO) QTDEROM, SUM(NPO_PSLIQU)/60 PESOLIQ 
			FROM NPO010 NPO (NOLOCK), NN3010 NN3 (NOLOCK)
			WHERE NN3_SAFRA = NPO_SAFRA
			AND NN3_FAZ = NPO_FAZ
			AND NN3_TALHAO = NPO_TALHAO
			AND NPO_SAFRA = '201101'
			AND  NPO_TIPO = 'P'
			AND NPO.D_E_L_E_T_ = ' '
			AND NN3_STATUS = 'F'
			AND  NN3.D_E_L_E_T_ = ' '
			GROUP BY NPO_SAFRA, NPO_FAZ ";

$result003 = mssql_query($sql003); 
while($consulta003 = mssql_fetch_array($result003)) { 

$todos2 = array($consulta003[NPO_SAFRA], $consulta003[NPO_FAZ], $consulta003[QTDEROM], $consulta003[PESOLIQ],);

 


<style type="text/css">
tr.par{background-color:#EFEFC9;}
tr.impar{background-color:#FFFFFF;}
table{border-collapse:collapse;}
</style>
</head>
<body>
<table border="0" width="100%">
<tr>
	<td align="center"><b><font face="Verdana" size="2">Fazenda</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Área(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Colhido(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Produção(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Estimado(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média Geral(sc/ha)

<?php
$conexão = mssql_connect("$xservidor", "$xuser", "$xsenha_db") or die("Não foi possível a conexão com o servidor");
mssql_select_db("$xbd") or die("Não foi possível selecionar o banco de dados");


//#######################################################################################
$todos = array();

$sql001 = " SELECT NN2_CODIGO, NN2_NOME, NN3_SAFRA, SUM(NN3.NN3_HECTAR) AREA, 
			SUM(CASE WHEN NN3.NN3_STATUS='F' THEN NN3.NN3_HECTAR ELSE 0 END) AREA_COLHIDA
			FROM NN2010 NN2, NN3010 NN3
			WHERE NN2.NN2_CODIGO = NN3.NN3_FAZ
			AND NN3.NN3_SAFRA = '201101'
			AND NN2.D_E_L_E_T_ = ' ' 
			AND NN3.D_E_L_E_T_ = ' ' 
			GROUP BY NN2_CODIGO, NN2_NOME, NN3_SAFRA
			ORDER BY NN2_CODIGO ";

$result001 = mssql_query($sql001);
while($consulta001 = mssql_fetch_array($result001)) {  

$todos = array($consulta001[NN2_CODIGO], $consulta001[NN2_NOME], $consulta001[NN3_SAFRA], $consulta001[AREA], $consulta001[AREA_COLHIDA]);

{

//#######################################################################################

$todos1 = array();

$sql002 = " SELECT NPA_SAFRA, NPA_FAZ, COUNT(NPA_CODIGO) QTDCARGA, SUM(NPA_QTDEST)/60 PESOEST  
			FROM NPA010
			WHERE NPA_SAFRA = $todos[2]
			AND NPA_FAZ = $todos[0]
			AND NPA_FECHAD = 'N'
			AND D_E_L_E_T_ = ''
			GROUP BY  NPA_SAFRA, NPA_FAZ ";

$result002 = mssql_query($sql002); 
while($consulta002 = mssql_fetch_array($result002)) { 

$todos1 = array($consulta002[NPA_SAFRA], $consulta002[NPA_FAZ], $consulta002[QTDCARGA], $consulta002[PESOEST]);


}



$resultado = array_merge($todos, $todos1);


?>


</td>
</tr>

<tr>
	<td align="center">
	<p align="left"><? echo $resultado[0]; ?> - <? echo $todos[1]; ?></td>
	<td align="center"><?php echo number_format($resultado[3], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo number_format($resultado[4], 2, ', ', '.'); ?></td>
	<td align="center">a</td>
	<td align="center">b</td>
	<td align="center">c</td>
	<td align="center">d</td>
	<td align="center"><?php echo number_format($resultado[8], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo $resultado[7]; ?></td>
	<td align="center">e</td>
</tr>


<?php } } 
mssql_close ?>

</table>

</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Jaime,

 

 

O Problema nao esta no SQL e sim na forma que estou tratanto o codigo..

mais obrigado pela dica..

 

 

 

 

 

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

 

 

 

 

 

Boa Noite Pessoal,

 

 

Com A AJUDA DO AMIGO MATHEUS... CONSEGUI RESOLVER MEU PROBLEMA... ELE ME PASSOU ALGUMAS DICAS E COM ISSO O CODIGO FUNCIONOU 100%.

 

OBRIGADO A TODOS PELA COLABORACAO, EM ESPECIAL AO MATHEUS.. (tirando a bagunca que fiz no sql ne matheus. rs)

 

 

 

Segue abaixo o codigo funcionando, se alguem tiver duvidas algum dia..

 

<?php include("../inc/cx.php");?>

<meta http-equiv="refresh" content="10">

<table border="0" width="100%">
<tr>
	<td align="center"><b><font face="Verdana" size="2">Faz</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Área(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Colhido(ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Produção(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média(sc/ha)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Estimado(sc)</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Cargas</font></b></td>
	<td align="center"><b><font face="Verdana" size="2">Média Geral(sc/ha)	
<?php
$conexão = mssql_connect("$xservidor", "$xuser", "$xsenha_db") or die("Não foi possível a conexão com o servidor");
mssql_select_db("$xbd") or die("Não foi possível selecionar o banco de dados");


$todos = array();

$sql001 = " SELECT NN2_CODIGO, NN2_NOME, NN3_SAFRA, SUM(NN3.NN3_HECTAR) AREA, 
			SUM(CASE WHEN NN3.NN3_STATUS='F' THEN NN3.NN3_HECTAR ELSE 0 END) AREA_COLHIDA
			FROM NN2010 NN2, NN3010 NN3
			WHERE NN2.NN2_CODIGO = NN3.NN3_FAZ
			AND NN3.NN3_SAFRA = '201101'
			AND NN2.D_E_L_E_T_ = ' ' 
			AND NN3.D_E_L_E_T_ = ' ' 
			GROUP BY NN2_CODIGO, NN2_NOME, NN3_SAFRA
			ORDER BY NN2_CODIGO ";

$result001 = mssql_query($sql001);
while($consulta001 = mssql_fetch_array($result001)) {  

$todos = array($consulta001[NN2_CODIGO], $consulta001[NN2_NOME], $consulta001[NN3_SAFRA], $consulta001[AREA], $consulta001[AREA_COLHIDA]);

{
{

$todos1 = array();

$sql002 = " SELECT NPA_SAFRA, NPA_FAZ, COUNT(NPA_CODIGO) QTDCARGA, SUM(NPA_QTDEST)/60 PESOEST  
			FROM NPA010
			WHERE NPA_SAFRA = $todos[2]
			AND NPA_FAZ = $todos[0]
			AND NPA_FECHAD = 'N'
			AND D_E_L_E_T_ = ''
			GROUP BY  NPA_SAFRA, NPA_FAZ
			ORDER BY  NPA_SAFRA, NPA_FAZ ";

$result002 = mssql_query($sql002); 
while($consulta002 = mssql_fetch_array($result002)) { 

$todos1 = array($consulta002[NPA_SAFRA], $consulta002[NPA_FAZ], $consulta002[QTDCARGA], $consulta002[PESOEST]);



}



$todos2 = array();

       $sql003 = " SELECT NPO_SAFRA, NPO_FAZ, COUNT(NPO_CODIGO) QTDEROM, SUM(NPO_PSLIQU)/60 PESOLIQ 
                               FROM NPO010 NPO (NOLOCK), NN3010 NN3 (NOLOCK)
                               WHERE NN3_SAFRA = NPO_SAFRA
                               AND NN3_FAZ = NPO_FAZ
                               AND NN3_TALHAO = NPO_TALHAO
                               AND NPO_SAFRA = '201101'
			AND NPO_FAZ = $todos[0]
                               AND NPO_TIPO = 'P'
                               AND NPO.D_E_L_E_T_ = ' '
                               AND  NN3.D_E_L_E_T_ = ' '
                               GROUP BY NPO_SAFRA, NPO_FAZ
			ORDER BY NPO_SAFRA, NPO_FAZ";

       $result003 = mssql_query($sql003); 
       while($consulta003 = mssql_fetch_array($result003)) { 

$todos2 = array($consulta003[NPO_SAFRA], $consulta003[NPO_FAZ], $consulta003[QTDEROM], $consulta003[PESOLIQ]);

}


$resultado = array_merge($todos, $todos2, $todos1);



$media1 = ($resultado[8]/$resultado[4]);

$media2 = ($resultado[8]/$resultado[3]);

$media3 = ($resultado[8]+$resultado[12])/$resultado[3];


?>

</td>
</tr>

<tr>
	<td align="center">
	<p align="left"><? echo $resultado[0]; ?> - <? echo $todos[1]; ?></td>
	<td align="center"><?php echo number_format($resultado[3], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo number_format($resultado[4], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo number_format($media1, 2, ', ', '.');?></td>
	<td align="center"><?php echo number_format($resultado[8], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo number_format($media2, 2, ', ', '.');?></td>
	<td align="center"><?php echo $resultado[7]; ?></td>
	<td align="center"><?php echo number_format($resultado[12], 2, ', ', '.'); ?></td>
	<td align="center"><?php echo $resultado[11]; ?></td>
	<td align="center"><?php echo number_format($media3, 2, ', ', '.');?></td>
</tr>

<?php } } }
mssql_close ?>

</table>

 

 

duvida> como mudo o post para resolvido.

 

 

 

 

Att.

Patric Castelli

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.