Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2017, 15:58
Avatar de aviweb2015
aviweb2015
 
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
problemas con insersion y actualizacion

saludos amigos, tengo las siguientes tablas:

trasvalores:
id_trasvalores
monto_trasvalores_apertura
monto_trasvalores_actual
monto_trasvalores_cierre
fecha
id_usuarios

transferencias:
id_transferencias
n_transferencia
fecha
hora
monto_trasferido
porcentaje
ganancia
total
id_usuarios
id_bancos_admin
id_cuentas_admin
id_clientes
id_bancos
id_cuentas
portada
status

ahora lo que necesito hacer es lo siguiente:



la tabla trasvalores es para ingresar montos por día, ejemplo: el admin hoy ingreso un monto de 100$. que seria el monto para iniciar el dia de trabajo

Ahora la tabla transferencias: para qué sirve, esta tabla es para realizar transferencias a clientes lo que quiero lograr es que cuando se haga una trasferencia se vaya actualizando en la tabla trasvolares; ejemplo si tengo en trasvolares un monto de 100$ y hice una transferencia de 20$ ya me debe quedar 80$ disponibles en trasvolares, lo que se tendría que actualizar cada vez que se haga una transferencia seria el monto_trasvalores_actual de la tabla trasvalores, pero antes de hacer la insersion debería hacer una consulta a la tabla trasvalores si hay fondo disponibles si hay se ejecuta el código de lo contrario debería mandar a recargar trasvalores para poder seguir realizando transferencias. hasta los momentos tengo esto.

Código PHP:
Ver original
  1. <!-- proceso para registrar-->
  2. <?php
  3. if(isset($_POST['guardar'])){
  4.  
  5.  
  6.   $sql = "SELECT monto_trasvalores_actual FROM trasvalores WHERE monto_trasvalores_actual = :monto_trasvalores_actual LIMIT 1"; //Creamos la select
  7.   $check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
  8.   $check->bindParam(':monto_trasvalores_actual', $_POST['monto_trasvalores_actual']);//Substituimos las variables de la SELECT
  9.   $check->execute();//Ejecutamos la consulta
  10.   $contador = $check -> rowCount();//Esta función devuelve el número de resultados que ha devuelto la SELECT
  11.   if ($contador > 2000) {
  12.   $check->closeCursor();
  13.    
  14.               $errMSG = "¡ Ups Aviso: trasvalores insuficiente Por favor Actualize el monto!";
  15.  
  16.     }
  17.  
  18.     else
  19.      
  20.     {
  21.  
  22.  
  23.     $imgFile = $_FILES['portada']['name'];
  24.     $tmp_dir = $_FILES['portada']['tmp_name'];
  25.     $imgSize = $_FILES['portada']['size'];
  26.    
  27.       $upload_dir = '../galerias_transferencias/'; // upload directory
  28.  
  29.       $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
  30.    
  31.       // valid image extensions
  32.       $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
  33.    
  34.       // rename uploading image
  35.       $portada = rand(1000,1000000).".".$imgExt;
  36.        
  37.       // allow valid image file formats
  38.       if(in_array($imgExt, $valid_extensions)){    
  39.         // Check file size '5MB'
  40.         if($imgSize < 5000000)        {
  41.           move_uploaded_file($tmp_dir,$upload_dir.$portada);
  42.         }
  43.         else{
  44.                    
  45.         $errMSG = "¡ Lo siento, su archivo es demasiado grande !";
  46.         }
  47.       }
  48.       else{
  49.              
  50.       $errMSG = "¡ Lo sentimos, sólo se permiten archivos JPG, JPEG, PNG y GIF !";
  51.       }
  52.    
  53.     // si no hay errores continuo...
  54.  
  55.   $sql = "SELECT  n_transferencia FROM transferencias WHERE   n_transferencia = :n_transferencia LIMIT 1"; //Creamos la select
  56.   $check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
  57.   $check->bindParam(':n_transferencia', $_POST['n_transferencia']);//Substituimos las variables de la SELECT
  58.   $check->execute();//Ejecutamos la consulta
  59.   $contador = $check -> rowCount();//Esta función devuelve el número de resultados que ha devuelto la SELECT
  60.   if ($contador > 0) {
  61.   $check->closeCursor();
  62.    
  63.               $errMSG = "¡ Ups Aviso: El Registro ya se Encuentra Insertado !";
  64.  
  65.     }
  66.     else
  67.     {
  68.  
  69. $sql=$DB_con->prepare("INSERT INTO transferencias (n_transferencia,fecha,hora,monto_trasferido,porcentaje,ganancia,total,
  70.  id_usuarios,id_bancos_admin,id_cuentas_admin,id_clientes,id_bancos,id_cuentas,portada,status) VALUES (
  71.  :n_transferencia,:fecha,:hora,:monto_trasferido,:porcentaje,:ganancia,:total,:id_usuarios,:id_bancos_admin,:id_cuentas_admin,
  72.  :id_clientes,:id_bancos,:id_cuentas,:portada,:status)");
  73. $sql->bindParam(':n_transferencia', $_POST['n_transferencia']);
  74. $sql->bindParam(':fecha', $_POST['fecha']);
  75. $sql->bindParam(':hora', $_POST['hora']);
  76. $sql->bindParam(':monto_trasferido', $_POST['monto_trasferido']);
  77. $sql->bindParam(':porcentaje', $_POST['porcentaje']);
  78. $sql->bindParam(':ganancia', $_POST['ganancia']);
  79. $sql->bindParam(':total', $_POST['total']);
  80. $sql->bindParam(':id_usuarios', $_POST['id_usuarios']);
  81. $sql->bindParam(':id_bancos_admin', $_POST['id_bancos_admin']);
  82. $sql->bindParam(':id_cuentas_admin', $_POST['id_cuentas_admin']);
  83. $sql->bindParam(':id_clientes', $_POST['id_clientes']);
  84. $sql->bindParam(':id_bancos', $_POST['id_bancos']);
  85. $sql->bindParam(':id_cuentas', $_POST['id_cuentas']);
  86. $sql->bindParam(':portada', $portada);
  87. $sql->bindParam(':status', $_POST['status']);
  88. $sql->execute();
  89.  
  90. $successMSG ="¡ Bien Hecho: Registro Insertado Correctamente !";
  91.  
  92.  
  93. $monto_trasferido= 0;
  94.  
  95. $sql2 = "UPDATE trasvalores SET monto_trasferido=:monto_trasvalores_actual WHERE monto_trasvalores_actual=:monto_trasvalores_actual;";  
  96. $sql2=$DB_con->prepare($sql2);
  97. $sql2->bindValue(":monto_trasvalores_actual",$monto_trasvalores_actual);
  98.  
  99.     if ($sql2 ->execute())
  100.     {
  101.         //echo "Se actualizaron ".$sql2->rowCount()." registros";
  102.     }
  103.     else
  104.     {
  105.         //echo "Los registros no se  actualizaron";
  106.     }
  107.  
  108.                }
  109.  
  110.        }
  111.   }
  112. ?>
  113. <!-- fin proceso para registrar-->
__________________
yoclens avilan