modify value

0

greetings community, I would like to try to update the amount I have available with the new amount to enter, example if I have $ 5 left and would like to enter $ 10, it would be $ 15 now with the new available amount attached to my query and form , since I do not get what is required.

update

<?php
if(isset($_GET['edita'])){

$monto_nuevo=$_GET['monto_nuevo'];

$sql=$DB_con->prepare("UPDATE trasvalores SET  monto_trasvalores_apertura=:monto_trasvalores_apertura, 
monto_nuevo=(monto_trasvalores_actual + $monto_nuevo) WHERE 
id_trasvalores=:id_trasvalores");
$sql->bindParam(':monto_trasvalores_apertura',$_GET['monto_nuevo']);
$sql->bindParam(':monto_trasvalores_actual',$_GET['monto_nuevo']);
$sql->bindParam(':id_trasvalores',$_GET['id_trasvalores']);
$sql->execute();
if($sql)
{

     $successMSG = "¡ Bien Hecho: El monto del trasvalor a sido actualizado !";

 }

 else

  {

     $errMSG = "¡ Ups Aviso: El Registro no se pudo actualizar !";

      }
   } 

?>

form

<?php
$id_trasvalores= $_GET['id_trasvalores'];
$consulta = $DB_con->prepare("SELECT * FROM trasvalores WHERE 
id_trasvalores=:id_trasvalores");
$consulta->execute(array(':id_trasvalores'=>$id_trasvalores));
$editar_linea = $consulta->fetch(PDO::FETCH_ASSOC);{
extract($editar_linea);
?>
<form class="col s12 m12 l12" action="actualizartrasvalores" 
name="frmContacto" method="GET">


<br>

<div class="input-field col s6 m4">
<input id="icon_prefix" class="black-text" type="text" 
name="monto_trasvalores_apertura" 
value="<?php echo $monto_trasvalores_apertura; ?>" autocomplete="off" 
title="Se necesito el monto!" 
pattern="[0-9]{5,15}" required/>
<label for="bancos" class="black-text ">Monto Apertura:</label>
</div>

<div class="input-field col s6 m4">
<input id="icon_prefix" class="black-text" type="text" 
name="monto_trasvalores_actual" 
value="<?php echo $monto_trasvalores_actual; ?>" autocomplete="off" 
title="Se necesito el monto!" 
pattern="[0-9]{5,15}" required/>
<label for="bancos" class="black-text ">Monto Actual:</label>
</div>




<div class="input-field col s6 m4">
<input id="icon_prefix" class="black-text" type="text" name="monto_nuevo" 
autocomplete="off" title="Se necesito el nuevo monto!" 
pattern="[0-9]{5,15}" required/>
<label for="nuevo monto" class="black-text ">Nuevo Monto:</label>
</div>




<div class="center-align">

<button class="btn waves-effect blue-grey darken-4 btn-medium" type="submit" 
name="edita">
Actualizar Registro
</button>

<a href='trasvalores' button class='btn waves-effect blue-grey darken-4 btn-
medium' type='submit'>Volver</button></a>

</div>

<input type='hidden' name='id_trasvalores' value='<?php echo 
$id_trasvalores; ?>'>
</form>
<?php

}

?>
    
asked by yoclens 15.08.2017 в 03:07
source

1 answer

1

There may be several reasons why you are not updating the value with the operation of the sum. Here are some:

Try using the binding parameter :monto_trasvalores_apertura in your sql and not the direct variable:

$sql=$DB_con->prepare("UPDATE trasvalores SET  monto_trasvalores_apertura=:monto_trasvalores_apertura, 
monto_nuevo=(monto_trasvalores_actual + :monto_trasvalores_apertura) WHERE 
id_trasvalores=:id_trasvalores");

You should also confirm that monto_nuevo has value so that it is not adding up with a value null :

if(isset($_GET['edita']) && issset($_GET["monto_nuevo"])){
//..

Note that the monto_trasvalor_actual column can be null. With the function IFNULL you can know if it is null and if it is, add it with 0, of opposite with its value:

 $sql=$DB_con->prepare("UPDATE trasvalores SET  monto_trasvalores_apertura=:monto_trasvalores_apertura, 
monto_nuevo=(IFNULL(monto_trasvalores_actual, 0) + :monto_trasvalores_apertura) WHERE 
id_trasvalores=:id_trasvalores");
$sql->bindParam(':monto_trasvalores_apertura',$_GET['monto_nuevo']);
$sql->bindParam(':monto_trasvalores_actual',$_GET['monto_nuevo']);
$sql->bindParam(':id_trasvalores',$_GET['id_trasvalores']);
$sql->execute();

Complete code:

if(isset($_GET['edita']) && isset($_GET["monto_nuevo"])){

$monto_nuevo=$_GET['monto_nuevo'];

     $sql=$DB_con->prepare("UPDATE trasvalores SET  monto_trasvalores_apertura=:monto_trasvalores_apertura, 
    monto_nuevo=(IFNULL(monto_trasvalores_actual, 0) + :monto_trasvalores_apertura) WHERE 
    id_trasvalores=:id_trasvalores");
    $sql->bindParam(':monto_trasvalores_apertura',$_GET['monto_nuevo']);
    $sql->bindParam(':monto_trasvalores_actual',$_GET['monto_nuevo']);
    $sql->bindParam(':id_trasvalores',$_GET['id_trasvalores']);
    $sql->execute();

 if($sql){
     $successMSG = "¡ Bien Hecho: El monto del trasvalor a sido actualizado !";
 }
  else{
     $errMSG = "¡ Ups Aviso: El Registro no se pudo actualizar !";
  }
} 
    
answered by 15.08.2017 / 03:25
source