Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar datos si los campos estan Vacios

Estas en el tema de Actualizar datos si los campos estan Vacios en el foro de PHP en Foros del Web. Hola a todos estoy teniendo un inconveniente, comento. Tengo que actualizar datos de mi tabla, pero lo que quiero evitar es que, si los datos ...
  #1 (permalink)  
Antiguo 04/04/2017, 22:20
 
Fecha de Ingreso: julio-2015
Mensajes: 9
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Actualizar datos si los campos estan Vacios

Hola a todos estoy teniendo un inconveniente, comento.

Tengo que actualizar datos de mi tabla, pero lo que quiero evitar es que, si los datos que estoy intentando actualizar ya existen, no los reemplace, ósea que el UPDATE solo actualice si los campos están vacíos, ahora bien un campo es de tipo 'datetime' y el otro 'varchar' dejo una captura de la db


y asi quedan los datos antes de actualizarlos



el código que tengo para reemplazar los dos campos es el siguiente.

Código PHP:
<?php
 
    
include("conexion.php");
 
 
    
$idForm $_POST['idForm'];
    
$FHoraSa $_POST['FHoraSa'];
    
$LegajoSa $_POST['LegajoSa'];
    {
        
mysqli_query ($con"UPDATE db2 SET FHoraSa = ('$FHoraSa'), LegajoSa = ('$LegajoSa')  WHERE idForm = ('$idForm')");
 
 
 
    
mysqli_close($con);
 
    echo 
"<script> alert('Hora Modificada Correctamente');</script>";
 
    }
    {
    
header('Location: db2_registros.php');
    }
?>
El tema es que de esta manera reemplaza los dos campos por mas que están con datos y es lo que quiero evitar.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 05/04/2017, 03:45
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Actualizar datos si los campos estan Vacios

Hola Angelito2076,

Antes de armar tu consulta, debes revisar si los campos contienen datos o no y en función de eso, efectuar la consulta de actualización.

Ejemplo:

Consulta de datos,
Si el dato x está vacío o tiene el valor 0000-00-00 00:00:00, $variable = '$campo = $valor', si el dato x contiene un valor, $variable = "";

Consulta de actualización:

UPDATE db2 SET $variable WHERE id= $id

Espero que se entienda, es que ahora no puedo preparar el código necesario, pero si no lo entiendes, avisa para intentar ayudarte mejor.
  #3 (permalink)  
Antiguo 05/04/2017, 23:11
 
Fecha de Ingreso: julio-2015
Mensajes: 9
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Actualizar datos si los campos estan Vacios

Hola rbczgz disculpa pero recién pude ver tu respuesta, y la verdad si me darías una mano te lo voy a agradecer por que creo que estoy haciendo lio.

Desde ya mil gracias.
  #4 (permalink)  
Antiguo 06/04/2017, 03:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Actualizar datos si los campos estan Vacios

Hola Angelito2076,

Te paso lo que yo haría basándome en tu código, pero tocándolo lo menos posible, si no te funciona, analízalo y adáptalo a tus necesidades:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     include("conexion.php");
  4.  
  5.  
  6.     $idForm = $_POST['idForm'];
  7.     $FHoraSa = $_POST['FHoraSa'];
  8.     $LegajoSa = $_POST['LegajoSa'];
  9.     $consulta = "SELECT FHoraSa, LegajoSa FROM db2 WHERE idForm = " . $idForm; // idForm es un int, con lo que no hay que usar 'comillas'
  10.    
  11.     //Comprobamos que se ejecuta la consulta
  12.     if ($resultado = mysqli_query($con, $consulta)) {
  13.  
  14.        // obtenemos array asociativo
  15.        while ($row = mysqli_fetch_assoc($resultado)) {
  16.            $FHoraSa_C = $row['FHoraSa'];
  17.            $LegajoSa_C = $row['LegajoSa'];
  18.        }
  19.     }
  20.     //Comprobamos los valores que tienen los campos antes de actualizar y si no
  21.     //están actualizados, componemos las variables para la consulta de actualización
  22.     $FHoraSa_C == "0000-00-00 00:00:00" ? $valor1 = "FHoraSa = '" . $FHoraSa . "'" : "";
  23.     empty($LegajoSa_C) ? $valor2 = "LegajoSa = '" . $LegajoSa . "'" : "";
  24.    
  25.     {
  26.         mysqli_query ($con, "UPDATE db2 SET " . $valor1 . ", " . $valor2 . "  WHERE idForm = " . $idForm);
  27.  
  28.  
  29.  
  30.     mysqli_close($con);
  31.  
  32.     echo "<script> alert('Hora Modificada Correctamente');</script>";
  33.  
  34.     }
  35.     {
  36.     header('Location: db2_registros.php');
  37.     }
  38. ?>

Espero que te sirva, no lo he probado porque no me da el tiempo para más, pero debería funcionar.
  #5 (permalink)  
Antiguo 06/04/2017, 08:58
 
Fecha de Ingreso: julio-2015
Mensajes: 9
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Actualizar datos si los campos estan Vacios

Un millón de gracias rbczgz funciono perfecto.

Etiquetas: campos, mysql, registro, vacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:45.