Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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_barraQuando for imprimir:
while ($row = mysql_fetch_array($query)) {
extract($row);
echo $codigo_barra;
echo $descricao;
echo $quantidade;
// ...Falou!
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_vendaaprazo / $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
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_vendaaprazo / $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!
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
<?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_vendaaprazo / $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!copiei e colei e apareceu o seguinte erro ainda:
Column 'codigo_barra' in where clause is ambiguous
http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif
$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.
Foi mal ai Gustavo e valeu William, eu tava sem tempo e na correria eskeci de alterar essa query ai!
Abrss!
Obrigado William Bruno e falcao544 pela ajuda.
Grato!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
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_connect("HOST2", "USUARIO2", "SENHA2");//Aqui você se conecta ao segundo banco!
while(instruções){//Aqui você poe as condições pro while
}
?>