Duvida ao decrementar valor de um campo com PHP em bd Mysql

MySQL

PHP

Automação Comercial

Front-end

23/12/2014

Pessoal, gostaria de orientação para efetuar uma decrementarão em um campo.
Se estiver como alguém me ajudar com exemplos,eu sere grato.
Matt

Matt

Curtidas 0

Melhor post

Joel Rodrigues

Joel Rodrigues

24/12/2014

Qual é sua dúvida exatamente? Alterar o valor de um campo não tem muito mistério. Você está tendo algum problema?
GOSTEI 1

Mais Respostas

Marisiana Battistella

Marisiana Battistella

23/12/2014

Tua dúvida está um pouco confusa Matt...
Poderia citar um exemplo de informação que vc está tentando alterar?
GOSTEI 1
Matt

Matt

23/12/2014

Eu nunca tinha trabalhado com operadores de incremento e decremento antes, fiz algumas pesquiças, busquei alguns exemplos, mas não obtive exito.
esse é meu código. podem me dizer oque estou fazendo de errado?

if(isset($_POST['add']))

{

$Estoque_produto = $_POST['Estoque_produto'];
$Estoque_produto = $Estoque_produto-1;
$sql = mysql_query("UPDATE tbl_produtos SET Estoque_produto='$Estoque_produto' WHERE cod='$cods'")or die(mysql_error());
if($sql == 1){
print"okey";
}


}
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

23/12/2014

Se vc executar sem fazer a subtração " $Estoque_produto = $Estoque_produto-1; " ainda apresenta erro?
Qual é o erro que ocorre?
GOSTEI 1
Matt

Matt

23/12/2014

na verdade não é que apresenta algum erro.
não ta decrementando no campo do DB
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

23/12/2014

Eu posso estar enganada, mas vc não está decrementando, vc está subtraindo...
Então talvez esteja faltando um espaço a direita e a esquerda do sinal de subtração:
if(isset($_POST['add']))

{

$Estoque_produto = $_POST['Estoque_produto'];
$Estoque_produto = $Estoque_produto - 1;
$sql = mysql_query("UPDATE tbl_produtos SET Estoque_produto='$Estoque_produto' WHERE cod='$cods'")or die(mysql_error());
if($sql == 1){
print"okey";	
}

}
GOSTEI 1
Marisiana Battistella

Marisiana Battistella

23/12/2014

Veja algumas explicações:

[url:descricao=Operadores Aritméticos]http://php.net/manual/pt_BR/language.operators.arithmetic.php[/url]

Operadores de Incremento/Decremento

[url:descricao=Operadores lógicos, aritméticos e de atribuição do PHP]https://www.devmedia.com.br/operadores-logicos-aritmeticos-e-de-atribuicao-do-php/25628[/url]
GOSTEI 1
Matt

Matt

23/12/2014

obrigado pela orientação!
assim que possível, irei testar novamente
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

23/12/2014

Por nada Matt!
Observei outro ponto no teu código...
No UPDATE, eu acho q vc não está concatenando o SQL com as variáveis corretamente.
Se não me engano é assim:
if(isset($_POST['add']))
{
$Estoque_produto = $_POST['Estoque_produto'];
$Estoque_produto = $Estoque_produto - 1;
$sql = mysql_query("UPDATE tbl_produtos SET Estoque_produto='.$Estoque_produto.' WHERE cod='.$cods.'")or die(mysql_error());
if($sql == 1){
print"okey";    
}
}


Faz tempo q não desenvolvo em PHP e não lembro bem como é o correto....
GOSTEI 1
Matt

Matt

23/12/2014

segui as orientações de vocês porem não obtive exito.
Se eu posta o código da minha pagina vocês podem me ajudar a encontra onde eu estou errando?
GOSTEI 0
Jairo Mendes

Jairo Mendes

23/12/2014

Oi Matt.
Tente o seguinte:

if(isset($_POST['add']))  {
  $Estoque_produto = $_POST['Estoque_produto'];
  echo $Estoque_produto;
  $Estoque_produto = $Estoque_produto-1;
  echo " Estoque_produto2: ". $Estoque_produto;
  $query_sql = "UPDATE tbl_produtos SET Estoque_produto='$Estoque_produto' WHERE cod='$cods'";
  echo " SQL: " . $query_sql;
  $sql = mysql_query($query_sql)or die(mysql_error());
  if($sql == 1) print"okey";	
}


Dessa forma você pode visualizar melhor o que esta acontecendo.
Não sei se errei alguma coisinha, pois fiz aqui no campo de mensagem mesmo. = )
GOSTEI 1
Wellington Silva

Wellington Silva

23/12/2014

Se vc quer decrementar um valor numérico que já esteja ne um banco de dados mysql vc pode fazer da seguinte forma:
UPDATE produtos SET quantidade = quantidade - 1 WHERE produto_id = 322;


Dessa forma o MySQL busca o valor atual da coluna quantidade e decrementar 1. Agora basta adaptar ao seu gosto.
Espero ter ajudado.
GOSTEI 0
Matt

Matt

23/12/2014

ai pessoal, obtive um resultado um pouco agradável. porem não o certo.
Quando eu executo a decrementarão ao invés de subtrair um valor, estar alterando o valor do campo para o valor "-1"


$cod = $_GET['cod'];
$Estoque_produto = $_POST['Estoque_produto'];
echo $Estoque_produto;
$Estoque_produto = $Estoque_produto - 1;
echo " Estoque_produto2: ". $Estoque_produto;
$query_sql = "UPDATE tbl_produtos SET Estoque_produto='$Estoque_produto' WHERE cod='$cod'";
echo " SQL: " . $query_sql;
$sql = mysql_query($query_sql)or die(mysql_error());
if($sql == 1) print"okey";


alguém pode me dizer oque estar acontecendo?
GOSTEI 0
Jairo Mendes

Jairo Mendes

23/12/2014

Oi Matt.
Verifique o tipo do campo Estoque_produto.
Talvez não esteja definido como numérico.
GOSTEI 1
Marisiana Battistella

Marisiana Battistella

23/12/2014

Matt, conseguiu descobrir o que está ocasionando o erro?
GOSTEI 0
Fernando C

Fernando C

23/12/2014

se entendi bem, sugestões:
1. se realmente a coluna Estoque_produto está definida como numérica (ex: int),
execute a sql sem a variavel; ex:
"UPDATE tbl_produtos SET Estoque_produto=(Estoque_produto-1) WHERE cod='$cod'";


2. se vc quer substituir o "1" por uma variavel selecionada num form, tente assim:
"UPDATE tbl_produtos SET Estoque_produto=(Estoque_produto-$Estoque_produto) WHERE cod='$cod'";


mas recomendo que use outros nomes p/ melhorar a legibilidade do seu código; ex:
$valoraretirar=$_POST['caixa_do_form'];
"UPDATE tbl_produtos SET Estoque_produto=(Estoque_produto-$valoraretirar) WHERE cod='$cod'";
GOSTEI 1
Matt

Matt

23/12/2014

pessoal, o campo estar definido como int, usei todos os exemplos expostos aqui por vocês, porem o mesmo problema persiste. ao invés de decrementar "-1" do valor do campo, ele estar inserindo o "-1" no campo.
E já fiz todas as pesquisas possíveis, tentei de varias foras, porem o problema persiste.
GOSTEI 0
Matt

Matt

23/12/2014

consegui solucionar meu problema :D
Valeu ai por todo mundo que ajudou
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

23/12/2014

Por nada!
Poderia informar qual foi a solução?
GOSTEI 0
Thiago

Thiago

23/12/2014

consegui solucionar meu problema :D
Valeu ai por todo mundo que ajudou



Poderia passar qual foi a solução? pois pode ter alguém com o mesmo problema.
GOSTEI 0
POSTAR