How to make condition with msql number [closed]

-2

Personal I need a lot of help I have an input for the person to make a transfer in cash but if that person has 30 reais of money and she enters a value of 100 reais to make the transfer she will have balance -100 eu I want her to be able to transfer as much money as she can in the database.

Code that 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 that I use to update the database by decreasing the typed value of the user and adding the account in 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'] ."'";
    
asked by anonymous 24.07.2018 / 03:44

1 answer

2

FORM EXPLAINED

Simple, just do a validation before UPDATE , on the value entered by the user. More or less this way:

Start of your PHP code placed in 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 value greater than it has, the value will be changed to the maximum value it has (which is registered in the bank). After this validation has been done, yes, you can save the amount of money in the session:

$_SESSION['dinheiro'] = $dinheiro;

End of your PHP code placed 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'] ."'";
    
24.07.2018 / 04:18