Actualizar monto disponible

  • Autor Autor yoclens
  • Fecha de inicio Fecha de inicio
yoclens

yoclens

Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
saludos comunidad, quisiera tratar de actualizar el monto que tengo disponible con el nuevo monto a ingresar, ejemplo si me queda 5$ y quisiera ingresar 10$, seria 15$ que tendría ahora con el nuevo monto disponible anexo mi consulta y formulario.


update

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

$monto_nuevo=$_GET['monto_nuevo'];

$sql=$DB_con->prepare("UPDATE trasvalores 
  SET  monto_trasvalores_apertura=(monto_trasvalores_actual + $monto_nuevo), 
       monto_trasvalores_actual=:monto_trasvalores_actual  WHERE id_trasvalores=:id_trasvalores");
$sql->bindParam(':monto_trasvalores_apertura',$_GET['monto_trasvalores_actual']);
$sql->bindParam(':monto_trasvalores_actual',$_GET['monto_trasvalores_actual']);
$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 !";

     }
  } 
  
?>


formulario

PHP:
<?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 m6">
<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 m6">
<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='monto_trasvalores_apertura' value='<?php echo $monto_trasvalores_actual; ?>'>
<input type='hidden' name='id_trasvalores' value='<?php echo $id_trasvalores; ?>'>
</form>
<?php

}

?>

gracias de ante mano.
 
¿Qué es lo que falla? En teoría para ese tipo de cosas se usa un acumulador. Por ejemplo: valor = valor + valor_nuevo.

Por cierto ¿Estás usando GET :ambivalence: ? Por regla se tiene que utilizar POST.
 
PS podrías hacer una condición si monto es +(x) muetra el resultado , pero si (x)es - ps haz la reducción.
 
¿Qué es lo que falla? En teoría para ese tipo de cosas se usa un acumulador. Por ejemplo: valor = valor + valor_nuevo.

Por cierto ¿Estás usando GET :ambivalence: ? Por regla se tiene que utilizar POST.

hola amigo el problema es que no me hace la nueva suma
 
Lo que veo es que intentas hacer todo en una mera consulta. Seria mas sencillo obtener el monto actual con un llamado al sql y sumarlo con el monto ingresado, ya por otro lado otro llamado a sql para guardar la informacion y listo. :encouragement:
 
Lo que veo es que intentas hacer todo en una mera consulta. Seria mas sencillo obtener el monto actual con un llamado al sql y sumarlo con el monto ingresado, ya por otro lado otro llamado a sql para guardar la informacion y listo. :encouragement:

gracias amigo podrías darme un ejemplo si no es mucha molestia ya que estoy como enrredado con eso
 
Pues no seria fácil hacer una suma, $monto_nuevo=$monto_viejo + $_GET['monto_nuevo']; , tendrías que hacer una consulta SQL para saber cual es el monto viejo :encouragement: bueno así entiendo.
 
Pues no seria fácil hacer una suma, $monto_nuevo=$monto_viejo + $_GET['monto_nuevo']; , tendrías que hacer una consulta SQL para saber cual es el monto viejo :encouragement: bueno así entiendo.

si la consulta esta echa y me muestra el monto actual, el update lo he acomodado asi pero ahora me da error:

PHP:
<?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=$_GET['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 !";

     }
  } 
  
?>

el error es el siguiente

PHP:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\SATv0.1\admin\actualizartrasvalores.php on line 28

- - - Actualizado - - -

gracias amigo o he resuelto anexo la solución:

PHP:
<?php
if(isset($_GET['edita']) && isset($_GET["monto_trasvalores_actual"]) && isset($_GET["monto_trasvalores_apertura"])){

$monto_trasvalores_apertura=$_GET['monto_trasvalores_apertura'];
$monto_trasvalores_actual=$_GET['monto_trasvalores_actual'];

     $sql=$DB_con->prepare("UPDATE trasvalores SET  

    monto_trasvalores_apertura=(IFNULL(monto_trasvalores_apertura, 0) + :monto_trasvalores_apertura),
    monto_trasvalores_actual=(IFNULL(monto_trasvalores_actual, 0) + :monto_trasvalores_apertura) WHERE 
    id_trasvalores=:id_trasvalores");
    $sql->bindParam(':monto_trasvalores_apertura',$_GET['monto_trasvalores_apertura']);
    $sql->bindParam(':monto_trasvalores_actual',$_GET['monto_trasvalores_actual']);
    $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 !";
  }
} 
?>
 
Si se acomoda a lo que buscabas y anda como necesitas, esta bien.
 
Atrás
Arriba