Ir para conteúdo

POWERED BY:

Arquivado

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

Gustavo Vilas

[Resolvido] fazer dois while com SQL's diferentes

Recommended Posts

Olá pessoal estou precisando fazer dois whiles com SQL1s diferentes de tabelas diferentes e exibir estes dados, so que não estou conseguindo, alguem sabe o que posso usar ara faezr isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim? tente explicar melhor!

 

Mas, se eu entendi:

 

<?php
mysql_connect("HOST", "USUARIO", "SENHA");//esse faz a conexão com um dos bancos!
mysql_select_db("DB");
$sql=mysql_query("SELECT campo FROM tabela");//Aqui você pega todas as informações sobre o campo de um determinada tabela!
mysql_close();
mysql_connect("HOST2", "USUARIO2", "SENHA2");//Aqui você se conecta ao segundo banco!
mysql_select_db("DB");
$sql2=mysql_query("SELECT campo FROM tabela");//Aqui todas as informações ficam nessa variavel $sql2
mysql_close();
while(instruções){//Aqui você poe as condições pro while
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Obrigaso pela ajuda, então

 

Eu tenho o seguinte SQL :

 

$sql = 	"SELECT * FROM entrada WHERE codigo_barra=".$codigo_barra;

$query = mysql_db_query(sacaria,$sql,$conexao);

while($dados=mysql_fetch_array($query)) {
$descricao=$dados['descricao'];
$quantidade=$dados['quantidade'];

...abaixo eu efetuo o INSERT em uma outra tabela(saida) ...}

//eis ai meu problema eu tenho os segintes campos

$avista=$dados["avista"];
aprazo=$dados["aprazo"];
$aprazo2=$dados["aprazo2"];
so que estes não fazem parte ta tabela entrada e sim da tabela produto, gostaria de pegar elas de acordo com o codigo_barra e como meu sql esta listando a tabela entrada , eu vou precisar da tabela produto para fazer as comparaçõe e inserir estes dados

 

tipo

 

$codigo_barra="123";

$descricao="Toalha";

$quantidade="10";

 

ai ele vai lá na minha tabela produto e ve que o codigo_barra 123

tem os seguintes valores :

 

$avista="1.00";

$aprazo="2.00";

$aprazo2= "3.00";

 

sendo assim ele efetua as contas:

 

$quantidade*$avista

$quantidade*$aprazo

$quantidade*$aprazo2

 

e armazena os dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm, então você quer fazer uma query com mais de um tabela, certo? Pode-se fazer dentro da mesma query, sem problemas, relacionando-as.

 

Exemplo:

 

SELECT * FROM entrada, produto WHERE entrada.codigo_barra=produto.codigo_barra
Quando for imprimir:

 

while ($row = mysql_fetch_array($query)) {
	extract($row);
	echo $codigo_barra;
	echo $descricao;
	echo $quantidade;
	// ...
}
O problema aqui é que se você quiser imprimir colunas que tenham nomes iguais nas duas tabelas, vai ter que usar uma query mais complicada. No entanto, neste caso provavelmente não será necessário.

 

Falou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eliseu não deu certo não.. vou postar o codigo para voces verem:

 

 



<?php

$conexao = mysql_connect('localhost', 'root');

$quantidade_venda=$_POST['quantidade_venda'];  
$cliente=$_REQUEST['cliente'];
$codigo_barra=$_POST['codigo_barra'];

$sql = 	"SELECT * FROM entrada WHERE codigo_barra=".$codigo_barra;

$query = mysql_db_query(sacaria,$sql,$conexao);

while($dados=mysql_fetch_array($query)) {
$descricao=$dados['descricao'];
$quantidade=$dados['quantidade'];


$valor_unitario=$dados["valor_unitario"];

//pegar valores a vista,aprazo e aprazo2 da tabela produto 
//multiplicar $quantidade_venda*$avista  /   $quantidade_venda*aprazo  /  $quantidade_venda*aprazo2

/*
$avista=$dados["avista"];
$aprazo=$dados["aprazo"];
$aprazo2=$dados["aprazo2"];
*/
$quantidade_atual=$quantidade-$quantidade_venda;

$data_saida=date("Y/m/d");

$s = explode("-",$data_saida);
$ano = $s[0];
$mes = $s[1];
$dia = $s[2];

$data_final = "$dia-$mes-$ano";
$data_mod = substr($data_final,-8,8);   
$dia_2 = substr($data_final,-19,2);

   $gravar="INSERT INTO saida(cliente,quantidade_venda,quantidade_atual,codigo_barra,descricao,valor_unitario,avista,aprazo,aprazo2,data_saida) 
VALUES('$cliente','$quantidade_venda','$quantidade_atual','$codigo_barra','$descricao','$valor_unitario','$avista','$aprazo','$aprazo2','$data_saida')";



}//fechamento do while 

         $con=mysql_db_query(sacaria,$gravar,$conexao);
		 $retorna="saidaprod.php?cliente=$cliente" ;
			  echo "<script>window.location='$retorna'</script>";
		
?>

Coloquei como você falou:

 

SELECT * FROM entrada, produto WHERE entrada.codigo_barra=".$codigo_barra;

mas ele nem inseriu no banco, na realidade eu tenho em ambas as tabelas o memma coluna com o mesmo nome no caso, descricao e codigo de barra

 

O que pode ser que não esta pegando esta variavel ? algo errado no código?

 

Obrigado

Gustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função mysql_db_query foi retirada do php 5.3.0., então é melhor usar mysql_query!

e que sacaria é esse ai na Query? $query = mysql_query(sacaria,$sql,$conexao);

 

Outra coisa é esse explode aqui:

$data_saida=date("Y/m/d");

 

$s = explode("-",$data_saida); Não tem como ele retirar o caractere " - " da data por dois motivos, porque tem que tá entre aspas simples e porque você já colocou " / " na data, ou seja a data fica assim:

2010/06/06 e não 2010-06-06, assim você tem que por " / " no explode!

 

E para realizar a query com mais de uma tabela, você tem que especificar o campo, se o campo for igual nas duas, temq ue colocar ele duas vezes!


<?php

$conexao = mysql_connect('localhost', 'root');

$quantidade_venda=$_POST['quantidade_venda'];  
$cliente=$_REQUEST['cliente'];
$codigo_barra=$_POST['codigo_barra'];

$sql =  "SELECT * FROM entrada, produto WHERE codigo_barra='$codigo_barra' AND codigo_barra='$codigo_barra'";

$query = mysql_query(sacaria,$sql);

while($dados=mysql_fetch_array($query)) {
$descricao=$dados["descricao"];
$quantidade=$dados["quantidade"];


$valor_unitario=$dados["valor_unitario"];

//pegar valores a vista,aprazo e aprazo2 da tabela produto 
//multiplicar $quantidade_venda*$avista  /   $quantidade_venda*aprazo  /  $quantidade_venda*aprazo2

/*
$avista=$dados["avista"];
$aprazo=$dados["aprazo"];
$aprazo2=$dados["aprazo2"];
*/
$quantidade_atual=$quantidade-$quantidade_venda;

$data_saida=date("Y/m/d");

$s = explode("-",$data_saida);
$ano = $s[0];
$mes = $s[1];
$dia = $s[2];

$data_final = "$dia-$mes-$ano";
$data_mod = substr($data_final,-8,8);   
$dia_2 = substr($data_final,-19,2);

   $gravar="INSERT INTO saida(cliente,quantidade_venda,quantidade_atual,codigo_barra,descricao,valor_unitario,avista,aprazo,aprazo2,data_saida) 
VALUES($cliente, $quantidade_venda, $quantidade_atual, $codigo_barra ,$descricao, $valor_unitario, $avista, $aprazo, $aprazo2, $data_saida)";



}//fechamento do while 

         $con=mysql_query(sacaria,$gravar,$conexao);
                 $retorna="saidaprod.php?cliente=$cliente" ;
                          echo "<script>window.location='$retorna'</script>";
                
?>
BOm acho que o resto tá certo, mas preciso que você me informe que scaraia é esse?

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá falcao544 o sacaria é meu DATABASE

 

coloquei como você falou e olha o erro que apareceu:

 

Column 'codigo_barra' in where clause is ambiguous

 

Aonde você fala

"E para realizar a query com mais de uma tabela, você tem que especificar o campo, se o campo for igual nas duas, temq ue colocar ele duas vezes!"

 

como ficaria isso? não entendi http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

$conexao = mysql_connect('localhost', 'root');
mysql_select_db("sacaria");

$quantidade_venda=$_POST['quantidade_venda'];  
$cliente=$_REQUEST['cliente'];
$codigo_barra=$_POST['codigo_barra'];

$sql =  "SELECT * FROM entrada, produto WHERE codigo_barra='$codigo_barra' AND codigo_barra='$codigo_barra'";

$query = mysql_query(,$sql);

while($dados=mysql_fetch_array($query)) {
$descricao=$dados["descricao"];
$quantidade=$dados["quantidade"];


$valor_unitario=$dados["valor_unitario"];

//pegar valores a vista,aprazo e aprazo2 da tabela produto 
//multiplicar $quantidade_venda*$avista  /   $quantidade_venda*aprazo  /  $quantidade_venda*aprazo2

/*
$avista=$dados["avista"];
$aprazo=$dados["aprazo"];
$aprazo2=$dados["aprazo2"];
*/
$quantidade_atual=$quantidade-$quantidade_venda;

$data_saida=date("Y/m/d");

$s = explode("/",$data_saida);
$ano = $s[0];
$mes = $s[1];
$dia = $s[2];

$data_final = "$dia-$mes-$ano";
$data_mod = substr($data_final,-8,8);   
$dia_2 = substr($data_final,-19,2);

   $gravar="INSERT INTO saida(cliente,quantidade_venda,quantidade_atual,codigo_barra,descricao,valor_unitario,avista,aprazo,aprazo2,data_saida) 
VALUES($cliente, $quantidade_venda, $quantidade_atual, $codigo_barra ,$descricao, $valor_unitario, $avista, $aprazo, $aprazo2, $data_saida)";



}//fechamento do while 

         $con=mysql_query($gravar);
                 $retorna="saidaprod.php?cliente=$cliente" ;
                          echo "<script>window.location='$retorna'</script>";
                
?>

Olha copia e cola esse código aqui! E outra coisa, sabe esse mysql_connect? entao neel você se conecta ao server ai dps você tem q por mysql_select_db("sacaria"); para que o php saiba onde que ele vai pegar as informações! COPIE E COLE ESSE CODIGO, é melhor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql =  "SELECT * FROM `entrada`, `produto` WHERE `entrada`.`codigo_barra`='$codigo_barra' AND `produto`.`codigo_barra`='$codigo_barra'";

 

$query = mysql_query($sql)or die( mysql_error());

identifique a tabela.

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.