Ir para conteúdo

POWERED BY:

Arquivado

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

jluiz27a

[Resolvido] Atualizar quantidade em estoque

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.