Ir para conteúdo

POWERED BY:

Arquivado

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

rafaeles17

Valor Negativo

Recommended Posts

Como posso fazer para que se ao realizar a função abaixo, o meu saldo no DB seja zero ele retorne uma mensagem dizendo que o saldo está zerado, pq ele está debitando negativo :/

 

 

 

<?php
$saldo      = $_POST["saldo"]; 
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");
 
mysql_query("UPDATE cliente SET  saldo = saldo -1 WHERE cliente.id = $id");
mysql_close();
header("Location: index.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, pode dar mais detalhes? não entendi bem o que se passas.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, pode dar mais detalhes? não entendi bem o que se passas.

 

Abraço

 

Olá Rafael,

Tenho esse código que pega o valor no DB do campo 'saldo'e atualiza ele com saldo -1, o que eu queria era verificar antes o o 'saldo'e caso ele fosse igual a zero ele imprimisse na tela que não poderia descontar o -1, o código como está agora fica negativo quando meu saldo é igual a zero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi, bom, basta tu fazer uma consulta do saldo com o ID e depois um if para ver se ele é maior que zero, se sim você executa o teu código do contrário imprime a mensagem que o saldo é zero.

 

Manja? avisa se precisar de ajuda com o codigo.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi, bom, basta tu fazer uma consulta do saldo com o ID e depois um if para ver se ele é maior que zero, se sim você executa o teu código do contrário imprime a mensagem que o saldo é zero.

 

Manja? avisa se precisar de ajuda com o codigo.

 

Abraço

Blz vou tentar aqui, qualquer coisa te do um grito, rsrsr.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$saldo = $_POST['saldo'];
$id = $_POST['id'];

$sel_cliente = mysql_query("SELECT * FROM clientes WHERE id = '{$id}' ");
$res_cliente = mysql_fetch_array($sel_cliente);

if($res_cliente['saldo'] <= 0){
     echo "O cliente não tem saldo!";
}else{
     mysql_query("UPDATE clientes SET saldo = saldo -1 WHERE id = '{$id}' ");
}

Isso aí resolve! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
$saldo = $_POST['saldo'];
$id = $_POST['id'];

$sel_cliente = mysql_query("SELECT * FROM clientes WHERE id = '{$id}' ");
$res_cliente = mysql_fetch_array($sel_cliente);

if($res_cliente['saldo'] <= 0){
     echo "O cliente não tem saldo!";
}else{
     mysql_query("UPDATE clientes SET saldo = saldo -1 WHERE id = '{$id}' ");
}

Isso aí resolve! :)

 

Andrew, usando seu código ele retorna o seguinte erro

 

Notice: Undefined index: saldo in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 4

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 8

O cliente não tem saldo!

 

sendo que o saldo estava positivo no DB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera essa linha:

 

 

$res_cliente = mysql_fetch_array($sel_cliente);

 

Para:

 

 

$res_cliente = mysql_fetch_row($sel_cliente);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Altera essa linha:

$res_cliente = mysql_fetch_array($sel_cliente);

Para:

$res_cliente = mysql_fetch_row($sel_cliente);

Rafael, eu já tinha feito essa alteração mas ele continua o erro.

 

Notice: Undefined index: saldo in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 5

 

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 9

O cliente não tem saldo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao que parece sua query está falhando, faça um teste.

 

Depois de:

$sel_cliente = mysql_query("SELECT * FROM clientes WHERE id = '{$id}' ");
Adicione:

if(!$sel_cliente) {
die(mysql_error());
}
E poste aqui qual erro é apresentado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao que parece sua query está falhando, faça um teste.

 

Depois de:

$sel_cliente = mysql_query("SELECT * FROM clientes WHERE id = '{$id}' ");
Adicione:

if(!$sel_cliente) {
die(mysql_error());
}
E poste aqui qual erro é apresentado.

 

 

 

Notice: Undefined index: saldo in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 5

No database selected

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esqueci --'

mas mesmo assim da erro.

 

Notice: Undefined index: saldo in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 5

Notice: Undefined index: saldo in /Applications/XAMPP/xamppfiles/htdocs/evs/salvar_edicao_recarga.php on line 15
O cliente não tem saldo!

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$saldo      = $_POST["saldo"]; 
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");

$saldo_real = $saldo-1;

mysql_query("UPDATE cliente SET  saldo = '$saldo_real' WHERE id = '$id'");
mysql_close();
header("Location: index.php");
?>

Só uma pergunta, o saldo realmente está vindo pela varável $saldo, ou está no Banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$saldo      = $_POST["saldo"]; 
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");

$saldo_real = $saldo-1;

mysql_query("UPDATE cliente SET  saldo = '$saldo_real' WHERE id = '$id'");
mysql_close();
header("Location: index.php");
?>

Só uma pergunta, o saldo realmente está vindo pela varável $saldo, ou está no Banco de dados?

 

Esta no db

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o caso é fazer uma subtração do saldo que vem da variável $saldo com o saldo do banco de dados, faça o seguinte:

<?php
$saldo      = $_POST["saldo"]; 
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");

$saldo_db = mysql_fecth_array(mysql_query("SELECT*FROM cliente WHERE id='$id'"));
$saldo_real = $saldo_db - 1;

if($saldo_real <= 0){
echo "Saldo negativo!";
}else{
mysql_query("UPDATE cliente SET saldo = '$saldo_real' WHERE id = '$id'");
}

mysql_close(); 
header("Location: index.php");
?>

Veja se realmente é isso que você quer fazer.

Agora só realmente não entendi, o que essa variável $saldo (que vem do $_POST['saldo']) vai executar nessa função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o caso é fazer uma subtração do saldo que vem da variável $saldo com o saldo do banco de dados, faça o seguinte:

<?php
$saldo      = $_POST["saldo"]; 
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");

$saldo_db = mysql_fecth_array(mysql_query("SELECT*FROM cliente WHERE id='$id'"));
$saldo_real = $saldo_db - 1;

if($saldo_real <= 0){
echo "Saldo negativo!";
}else{
mysql_query("UPDATE cliente SET saldo = '$saldo_real' WHERE id = '$id'");
}

mysql_close(); 
header("Location: index.php");
?>

Veja se realmente é isso que você quer fazer.

Agora só realmente não entendi, o que essa variável $saldo (que vem do $_POST['saldo']) vai executar nessa função.

Removi o $saldo = $_POST["saldo"];

realmente nao sei o que ele estava fazendo ai --'

 

colocando seu código ja removendo /$saldo = $_POST["saldo"];\ ele me retorna esse erro

 

Fatal error: Call to undefined function mysql_fecth_array() in /Applications/XAMPP/xamppfiles/htdocs/evs/cobrar/salvar_edicao_recarga.php on line 6

 

segue o código como ficou

 

<?php
$id        = $_POST["id"];
mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");
$saldo_db = mysql_fecth_array(mysql_query("SELECT*FROM cliente WHERE id='$id'"));
$saldo_real = $saldo_db - 1;
if($saldo_real <= 0){
echo "Saldo negativo!";
}else{
mysql_query("UPDATE cliente SET saldo = '$saldo_real' WHERE id = '$id'");
}
mysql_close(); 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome correto da função é "mysql_fetch_array" e não "mysql_fecth_array". Eu acho que não é necessário executar duas queries nesse script, basta você dizer a query que ela só deve alterar se o "saldo" for maior que 0.

 

A query ficaria assim:

UPDATE cliente SET saldo = saldo - 1 WHERE id = '$id' AND saldo > 0
Script completo:

<?php
$id = $_POST["id"];

mysql_connect("localhost", "root", "");
mysql_select_db("card_evs");

mysql_query("UPDATE cliente SET saldo = saldo - 1 WHERE id = '$id' AND saldo > 0");

if(mysql_affected_rows() < 1) {
	echo "Saldo negativo!";
}

mysql_close(); 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu apenas errei na digitação, nem tinha percebido. (Y)

Valeu pela correção.

 

Agora a questão das duas querys, tente pensar em como um leigo entenderia (Y).

 

edit

-------------------

 

Eu estive pensando aqui, para resumir mais ainda não é nem necessário fazer saldo - 1, apenas verificar se o saldo é maior que 1.

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.