23/12/2014

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

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.

Melhor resposta

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?

Joel Rodrigues

Responder Citar

Outras Respostas

24/12/2014

Marisiana

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

26/12/2014

Matt

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";
}


}
Responder Citar

30/12/2014

Marisiana

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

02/01/2015

Matt

na verdade não é que apresenta algum erro.
não ta decrementando no campo do DB
Responder Citar

02/01/2015

Marisiana

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";	
}

}
Responder Citar

02/01/2015

Marisiana

Veja algumas explicações:

Operadores Aritméticos

Operadores de Incremento/Decremento

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

02/01/2015

Matt

obrigado pela orientação!
assim que possível, irei testar novamente
Responder Citar

02/01/2015

Marisiana

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....
Responder Citar

07/01/2015

Matt

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?
Responder Citar

07/01/2015

Jairo Mendes

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. = )
Responder Citar

07/01/2015

Wellington Silva

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.
Responder Citar

08/01/2015

Matt

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?
Responder Citar

08/01/2015

Jairo Mendes

Oi Matt.
Verifique o tipo do campo Estoque_produto.
Talvez não esteja definido como numérico.
Responder Citar

10/01/2015

Marisiana

Matt, conseguiu descobrir o que está ocasionando o erro?
Responder Citar

10/01/2015

Fernando C

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'";
Responder Citar