How to make condition with msql number

Asked

Viewed 60 times

-2

Personal need a lot of help I have an input for the person to make a money transfer but if that person has 30 real money and she type a value of 100 real to make the transfer she will be with balance -100 I just want her to be able to transfer as much money as is in the database

Code I use to transfer the user to the bank

<div class="tab-pane" id="thee-tab">
    <p><form method="POST" action="?pagina=setting">

<center>
    <select name="id">

<?php
    $result_usuario = "SELECT * FROM `usuarios` WHERE id=1";
    $mostra_dados = mysqli_query($conn, $result_usuario);
    while($rows_cursos = mysqli_fetch_assoc($mostra_dados)){ ?>
   <option value="<?php echo $rows_cursos['id']; ?>"><?php echo $rows_cursos['usuario']; ?></option>
 <?php } ?>
 </select>

Dinheiro: <input type="text" name="dinheiro" max="<?php echo $rows_cursos['dinheiro']; ?>">

Code I use to update the database by decreasing the user’s input value and adding the account to the database

$id = $_POST['id']; 
$dinheiro = $_POST['dinheiro']; 
$_SESSION['id'] = $id; 
$_SESSION['dinheiro'] = $dinheiro; 

$recebe_dados1 = "UPDATE usuarios SET dinheiro = dinheiro -'$dinheiro' WHERE id = '".$_SESSION['usuarioId'] ."'"; 
$recebe_dados2 = "UPDATE usuarios SET dinheiro = dinheiro +'$dinheiro' WHERE id = $id"; 
$recebe_dados3 = "UPDATE usuarios SET depositado = depositado +'$dinheiro' WHERE id = '". $_SESSION['usuarioId'] ."'";

1 answer

2

FORM EXPLAINED

Simple, just do a validation before the UPDATE, about the value informed by the user. More or less in this way:

Start of your PHP code placed in the question

$id = $_POST['id']; 
$dinheiro = $_POST['dinheiro']; 
$_SESSION['id'] = $id; 
//$_SESSION['dinheiro'] = $dinheiro;  deixa essa parte para depois de validar

Validation (Solution)

// faz a busca pelas informações do usuário que irá fazer a transferência
$consulta = "SELECT * FROM 'usuarios' WHERE id = '".$_SESSION['usuarioId'] ."'";
$result = mysqli_query($conn, $consulta);
$rows = mysqli_fetch_assoc($result);

// verifica se o dinheiro que ele informou para o deposito é maior 
// do que o valor que ele possui em banco
// EDIT: Tinha esquecido do ";"
if ($dinheiro > $rows['dinheiro'])
    $dinheiro = $rows['dinheiro'];

With the condition, if it passes a higher value than it has, the value will be changed to the maximum value it has (which is registered in the bank). After this validation, ai yes, you can save the value of money in the session:

$_SESSION['dinheiro'] = $dinheiro;

End of your PHP code put in question

$recebe_dados1 = "UPDATE usuarios SET dinheiro = dinheiro -'$dinheiro' WHERE id = '".$_SESSION['usuarioId'] ."'"; 
$recebe_dados2 = "UPDATE usuarios SET dinheiro = dinheiro +'$dinheiro' WHERE id = $id"; 
$recebe_dados3 = "UPDATE usuarios SET depositado = depositado +'$dinheiro' WHERE id = '". $_SESSION['usuarioId'] ."'";

SIMPLE FORM (CODE ONLY)

$id = $_POST['id']; 
$dinheiro = $_POST['dinheiro']; 
$_SESSION['id'] = $id; 
//$_SESSION['dinheiro'] = $dinheiro;  deixa essa parte para depois de validar
// faz a busca pelas informações do usuário que irá fazer a transferência
$consulta = "SELECT * FROM 'usuarios' WHERE id = '".$_SESSION['usuarioId'] ."'";
$result = mysqli_query($conn, $consulta);
$rows = mysqli_fetch_assoc($result);

// verifica se o dinheiro que ele informou para o deposito é maior 
// do que o valor que ele possui em banco
// EDIT: Tinha esquecido do ";"
if ($dinheiro > $rows['dinheiro'])
    $dinheiro = $rows['dinheiro'];

$_SESSION['dinheiro'] = $dinheiro;

$recebe_dados1 = "UPDATE usuarios SET dinheiro = dinheiro -'$dinheiro' WHERE id = '".$_SESSION['usuarioId'] ."'"; 
$recebe_dados2 = "UPDATE usuarios SET dinheiro = dinheiro +'$dinheiro' WHERE id = $id"; 
$recebe_dados3 = "UPDATE usuarios SET depositado = depositado +'$dinheiro' WHERE id = '". $_SESSION['usuarioId'] ."'";
  • translate porfavor kkk am beginner in php where I have to put what in the codes

  • I added in the answer the code as it should be.

  • this should be at the top of the input in the field it enters the value or on the page when the value is sent?

  • syntax error, Unexpected '$_SESSION' (T_VARIABLE) in

  • if you just copied the code, I forgot a ; that may have caused this error.

  • mysqli_fetch_assoc() expects Parameter 1 to be mysqli_result, Boolean Given in

  • help me please

Show 2 more comments

Browser other questions tagged

You are not signed in. Login or sign up in order to post.