jluiz27a 0 Denunciar post Postado Junho 28, 2009 Como faço para atualizar a quantidade em estoque, tenho uma tabela entrada produtos, e outra saida de produto, gostaria de quando em colocar a quantidade na saida ele atualizar a quantidade da entrada Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 28, 2009 UPDATE `tabela` SET `tabela`.`quantidade` = '{$quantidade}' WHERE `tabela`.`produto` = '{$produto}' Isto é um esboço da query que irá usar. Agora é só construir um formulário para pegar a atualização do estoque, e jogar nesta query. Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 28, 2009 UPDATE `tabela` SET `tabela`.`quantidade` = '{$quantidade}' WHERE `tabela`.`produto` = '{$produto}' Isto é um esboço da query que irá usar. Agora é só construir um formulário para pegar a atualização do estoque, e jogar nesta query. Não entende muito bem esta query, vou posta o codigo que não esta dando certo $qtds = $_GET['qtd_produto']; if(isset($_POST[cadastrar])){ mysql_query("update entrada set qtd=qtd - '$qtds' where id_entrada='id_entrada'"); Bom o negocio é o seguinte, eu estou pegando o valor do campo quantida, da tabela saida e subtraido pela tabela entrada so que não rola ele não esta subtraido o valor da tabela entrada. Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 28, 2009 A query estava mal feita. mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'"); Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 A query estava mal feita. mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'"); Fiz como esta esta query so que não rolou <?php include ("conexao.php"); $qtds = $_GET['qtd_produto']; if(isset($_POST[cadastrar])){ $sql = "INSERT INTO `estoquephp`.`saida` ( `id_saida` , `nome` , `valor_entrada` , `qtd_produto` , `valor_venda` , `valor_final` , `nparcelas` , `parcela` , `p11` , `p22` , `p33` , `p44` , `p55` , `d1` , `d2` , `d3` , `d4` , `d5` , `nome_cliente` , `obs_cliente` , `total` ) VALUES ( NULL , '$_POST[nome]', '$_POST[valor_entrada]', '$_POST[qtd_produto]', '$_POST[valor_venda]', '$_POST[valor_final]', '$_POST[nparcelas]', '$_POST[parcela]', '$_POST[p11]', '$_POST[p22]', '$_POST[p33]', '$_POST[p44]','$_POST[p55]', '$_POST[d1]', '$_POST[d2]', '$_POST[d3]', '$_POST[d4]', '$_POST[d5]', '$_POST[nome_cliente]', '$_POST[obs_cliente]', '$_POST[total]');"; mysql_query($sql); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'"); header("location:saida_produtos.php"); print"sql"; } então ele faz a gravação na tabela saida so que não atualiza a quantidade da tabela entrada, onde estou errando, pela logica ele esta pegando o valor do campo qtd_produto, e com este valor teria que subtrair, no campo da tabela entrada depois que eu grava a saida na tabela saida. onde estou errando. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 Troca isto mysql_query($sql); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'"); Por isto mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'") or die('A segunda query deu erro - '.mysql_error()); Poste o que exibir. De qualquer forma, tem coisa errada. O que o André colocou era um exemplo. Veja que '{id_entrada}' não é uma variável. E portanto, não tem como o Mysql entender onde é pra alterar. Creio que o que você quer é algo assim. $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id($x); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error()); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 Troca isto mysql_query($sql); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'"); Por isto mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{id_entrada}'") or die('A segunda query deu erro - '.mysql_error()); Poste o que exibir. De qualquer forma, tem coisa errada. O que o André colocou era um exemplo. Veja que '{id_entrada}' não é uma variável. E portanto, não tem como o Mysql entender onde é pra alterar. Creio que o que você quer é algo assim. $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id($x); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error()); coloquei este codigo abaixo como você havia me enviado $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id($x); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error()); deu o seguinte erro na hora de inserir Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\Estoque-PHP\saida_produtos.php on line 35 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Estoque-PHP\saida_produtos.php:35) in C:\xampp\htdocs\Estoque-PHP\saida_produtos.php on line 37 sql estas são a duas tabelas tabela entrada ( `id_entrada` , `cod_produto` , `nome` , `categoria` , `valor_venda` , `descricao` , `qtd`) tabela saida (`id_saida` , `nome` , `valor_entrada` , `qtd_produto` , `valor_venda` , `valor_final` , `nparcelas` , `parcela` , `p11` , `p22` , `p33` , `p44` , `p55` , `d1` , `d2` , `d3` , `d4` , `d5` , `nome_cliente` , `obs_cliente` , `total`) o que me importa no momento das duas tabelas e o campo qtd tabela entrada, e o campo qtd_produto da tabela saida se campo qtd_produto = 1 --> subtrair o valor do campo qtd da tabela entrada - 1; sei a logica so não sei como fazer Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 2 coisas erradas. Uma delas fui eu. Sintaxe errada. $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id();// é assim o correto mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error());Só que isto nem vai ser usado, em função do erro número 2. O segundo erro é que aqui não tem o código do produto para mexer na quantidade. A sua modelagem da tabela de saída está errada. Veja UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}// traduzindo // MODIFIQUE entrada COLOQUE qtde IGUAL A (qtde MENOS qtde determinada) AONDE ????? A pergunta que tem que ser respondida para o mysql é o AONDE???? Creio que a resposta teria que ser mais ou menos assim UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = 'AQUI VAI O CÓDIGO DO PRODUTO VENDIDO' Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 2 coisas erradas. Uma delas fui eu. Sintaxe errada. $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id();// é assim o correto mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error());Só que isto nem vai ser usado, em função do erro número 2. O segundo erro é que aqui não tem o código do produto para mexer na quantidade. A sua modelagem da tabela de saída está errada. Veja UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}// traduzindo // MODIFIQUE entrada COLOQUE qtde IGUAL A (qtde MENOS qtde determinada) AONDE ????? A pergunta que tem que ser respondida para o mysql é o AONDE???? Creio que a resposta teria que ser mais ou menos assim UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = 'AQUI VAI O CÓDIGO DO PRODUTO VENDIDO' Carlos Eduardo humm, então eu teria que ter o id_entrada na tabela saida tambem, hum so uma pergunta posso esta passando este valor por um hidden? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 Como diria nosso amigo Jack, vamos por partes... então eu teria que ter o id_entrada na tabela saida tambem Não. O que falta na sua modelagem é o código do produto na tabela de saída. hum so uma pergunta posso esta passando este valor por um hidden Sim. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 2 coisas erradas. Uma delas fui eu. Sintaxe errada. $x = mysql_query($sql) or die('A primeira query deu erro - '.mysql_error()); $id_entrada = mysql_insert_id();// é assim o correto mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}'") or die('A segunda query deu erro - '.mysql_error());Só que isto nem vai ser usado, em função do erro número 2. O segundo erro é que aqui não tem o código do produto para mexer na quantidade. A sua modelagem da tabela de saída está errada. Veja UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE id_entrada = '{$id_entrada}// traduzindo // MODIFIQUE entrada COLOQUE qtde IGUAL A (qtde MENOS qtde determinada) AONDE ????? A pergunta que tem que ser respondida para o mysql é o AONDE???? Creio que a resposta teria que ser mais ou menos assim UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = 'AQUI VAI O CÓDIGO DO PRODUTO VENDIDO' Carlos Eduardo fiz tudo como manda o figurino, mas não rolou, continua so adicionaldo na tabela saida e não dando baixa na tabela entrada, da quantidade, segue o codigo <?php include ("conexao.php"); if(isset($_POST[cadastrar])){ $qtds = $_GET['qtd_produto']; $id = $_GET['cod_produto']; $sql = "INSERT INTO `estoquephp`.`saida` ( `id_saida` , `cod_produto` , `nome` , `valor_entrada` , `qtd_produto` , `valor_venda` , `valor_final` , `nparcelas` , `parcela` , `p11` , `p22` , `p33` , `p44` , `p55` , `d1` , `d2` , `d3` , `d4` , `d5` , `nome_cliente` , `obs_cliente` , `total` ) VALUES ( NULL , '$_POST[cod_produto]', '$_POST[nome]', '$_POST[valor_entrada]', '$_POST[qtd_produto]', '$_POST[valor_venda]', '$_POST[valor_final]', '$_POST[nparcelas]', '$_POST[parcela]', '$_POST[p11]', '$_POST[p22]', '$_POST[p33]', '$_POST[p44]','$_POST[p55]', '$_POST[d1]', '$_POST[d2]', '$_POST[d3]', '$_POST[d4]', '$_POST[d5]', '$_POST[nome_cliente]', '$_POST[obs_cliente]', '$_POST[total]');"; mysql_query($sql); mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'"); header("location:saida_produtos.php"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 Coloca isto. mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'") or die(mysql_error()); Veja se exibe algum erro. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 Coloca isto. mysql_query("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'") or die(mysql_error()); Veja se exibe algum erro. Carlos Eduardo não deu erro algum, mas tambem não fez a baixa no estoque Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 Tenta assim $sql_qtde = "UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'"; echo 'A query do update ficou assim - '.$sql_qtde; mysql_query($sql_qtde) or die(mysql_error()); Vai imprimir na tela o UPDATE. Confere se a quantidade está correta e o cod_produto também. Qualquer coisa posta de novo. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 Tenta assim $sql_qtde = "UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'"; echo 'A query do update ficou assim - '.$sql_qtde; mysql_query($sql_qtde) or die(mysql_error()); Vai imprimir na tela o UPDATE. Confere se a quantidade está correta e o cod_produto também. Qualquer coisa posta de novo. Carlos Eduardo mano venho aqui para te agradecer, mas eu estava sendo burro mesmo muito obrigado, conseguir com sua ajuda, na verdade estava passando a variavel como $_GET quando na verdade era $_POST, coloquei como post e funcionou, tenho que te agradecer muito, mano um beijao. qualquer tamos ai fmz Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 29, 2009 Beleza... O importante é que resolveu e veio postar como resolveu, para caso outra pessoa tenha o mesmo problema, ache a resposta. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
jluiz27a 0 Denunciar post Postado Junho 29, 2009 Beleza... O importante é que resolveu e veio postar como resolveu, para caso outra pessoa tenha o mesmo problema, ache a resposta. Carlos Eduardo beleza, ai esta, abaixo esta dando baixa no estoque que é uma maravilha. <?php include ("conexao.php"); if(isset($_POST[cadastrar])){ $qtds = $_POST["qtd_produto"]; $id = $_POST["cod_produto"]; $sqll = ("UPDATE `entrada` SET qtd = (qtd - '{$qtds}') WHERE cod_produto = '{$id}'") or die(mysql_error()); $query = mysql_query($sqll); $sql = "INSERT INTO `estoquephp`.`saida` ( `id_saida` , `cod_produto` , `nome` , `valor_entrada` , `qtd_produto` , `valor_venda` , `valor_final` , `nparcelas` , `parcela` , `p11` , `p22` , `p33` , `p44` , `p55` , `d1` , `d2` , `d3` , `d4` , `d5` , `nome_cliente` , `obs_cliente` , `total` ) VALUES ( NULL , '$_POST[cod_produto]', '$_POST[nome]', '$_POST[valor_entrada]', '$_POST[qtd_produto]', '$_POST[valor_venda]', '$_POST[valor_final]', '$_POST[nparcelas]', '$_POST[parcela]', '$_POST[p11]', '$_POST[p22]', '$_POST[p33]', '$_POST[p44]','$_POST[p55]', '$_POST[d1]', '$_POST[d2]', '$_POST[d3]', '$_POST[d4]', '$_POST[d5]', '$_POST[nome_cliente]', '$_POST[obs_cliente]', '$_POST[total]');"; mysql_query($sql); header("location:saida_produtos.php"); } Compartilhar este post Link para o post Compartilhar em outros sites