Foros del Web » Programando para Internet » PHP »

comando para no actualizar campo en UPDATE

Estas en el tema de comando para no actualizar campo en UPDATE en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente código: Código PHP: // $sql  =  "UPDATE online SET ano='$ano', mes='$mes', dia='$dia', hora='$hora', minuto='$minuto', segundo='$segundo', Vsalidaac='$Vsalidaac' where id=1" ; mysqli_query ( $conn ,  $sql );  Me gustaría que si cualquiera ...
  #1 (permalink)  
Antiguo 01/10/2020, 07:04
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 19 años, 6 meses
Puntos: 2
comando para no actualizar campo en UPDATE

Hola a todos, tengo el siguiente código:

Código PHP:
//
$sql "UPDATE online SET ano='$ano', mes='$mes', dia='$dia', hora='$hora', minuto='$minuto', segundo='$segundo', Vsalidaac='$Vsalidaac' where id=1";
mysqli_query($conn$sql); 
Me gustaría que si cualquiera de la variables: ano, mes, hora, etc toma un determinado valor no lo actualice por ese valor y deje el que tuviese anteriormente, es decir, como si no estuviese dentro de la secuencia de update, se me ocurre repetir 8 veces una condicional:

Si XXX = YYY entonces $sql valdrá toda la cadena sin la variable XXX, pero ¿existe otra forma mas elegante de hacerlo?

un saludo
  #2 (permalink)  
Antiguo 01/10/2020, 10:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.545
Antigüedad: 10 años, 9 meses
Puntos: 972
Respuesta: comando para no actualizar campo en UPDATE

La sentencia CASE te puede ser útil.

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2.     campo1 = CASE
  3.         WHEN valor1 = x1 THEN campo1 ELSE x1
  4.     END,
  5.     campo2 = CASE
  6.         WHEN valor2 = x2 THEN campo2 ELSE x2
  7.     END,
  8.     campo3 = CASE
  9.         WHEN valor3 = x3 THEN campo3 ELSE x3
  10.     END
  11. WHERE condición

Se evalúa la actualización de cada columna de la tabla, dejando el valor existente en caso de que el valor recibido sea uno en particular y actualizándolo si es diferente. Por ejemplo, si valor1 es igual a x1, se establece como valor para la columna el que actualmente está, es decir, no se altera. Pero si es otro valor (ELSE, como en la sentencia IF-ELSE), se establece el valor de x1 como el nuevo valor de la columna. Y así se va evaluando cada caso.

También podrías utilizar la función IF:

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2.     campo1 = IF (valor1 = x1, campo1, x1),
  3.     campo2 = IF (valor2 = x2, campo2, x2),
  4.     campo3 = IF (valor3 = x3, campo3, x3)
  5. WHERE condición

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 02/10/2020 a las 09:35 Razón: Corrección de enlace

Etiquetas: campo, comando, update
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 05:05.