Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Evitar UPDATE si el input está vacío

Estas en el tema de Evitar UPDATE si el input está vacío en el foro de PHP en Foros del Web. Hola gente Necesito actualizar varios datos que vienen desde un input (formulario HTML) hacia una base de datos (MySQL), pero necesito que si un input ...
  #1 (permalink)  
Antiguo 28/07/2015, 15:14
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Busqueda Evitar UPDATE si el input está vacío

Hola gente

Necesito actualizar varios datos que vienen desde un input (formulario HTML) hacia una base de datos (MySQL), pero necesito que si un input viene vacío, no sustituya el valor actual.

O sea, si en la base de datos tengo estos datos:

Cita:
color = azul
precio = 50
stock = 1
Al poner esto en un input:

Cita:
color = verde
precio = 55
stock =
Quisiera que en la base de datos no me aparezca esto:

Cita:
color = verde
precio = 55
stock =
Sino esto:

Cita:
color = verde
precio = 55
stock = 1
Y realmente no encuentro la manera lógica de hacerlo.

Agradezco cualquier ayuda que me guíe.

jrasias d ante braso
__________________
¿Te sirvió la respuesta? Deja un +1
  #2 (permalink)  
Antiguo 28/07/2015, 15:29
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Evitar UPDATE si el input está vacío

Bien, ya pude detectar qué campos están vacíos gracias a esta ayuda.

Lo que hago es lo siguiente:

Código PHP:
Ver original
  1. if (empty(trim($color || $precio || $stock)))
  2. {
  3.     echo "No hay nada que actualizar";
  4. }
  5. else
  6. {
  7.     echo "Datos actualizados";
  8. };

Pero, ¿hay alguna manera de obtener los datos que SÍ han sido actualizados?
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 28/07/2015, 16:24
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Evitar UPDATE si el input está vacío

Por un lado usar la función empty de PHP, pero también deberías validar los campos desde HTML con Javascript o con las mismas instrucciones de HTML. Por ejemplo:

Con HTML

Código HTML:
Ver original
  1. <input type="text" name="color" value="" required />

y con Javascript podrías validar tus campos para que no vayan vacíos o que no introduzcan valores que no correspondan, por ejemplo que en input "precio", no pongan valores no numéricos o menores a 0.

Este plugin de JQuery te podría ayudar mucho y es fácil de usar: http://jqueryvalidation.org/

en PHP igual se pueden validar los campos de diferentes maneras, por ejemplo:

Código PHP:
$precio trim(mysqli_real_escape_string($con$_POST['precio']));

if(empty(
$precio)){ $mensaje 'El campo no puede quedar vacío.'; }
elseif(!
is_numeric($precio)){ $mensaje 'El valor introducido no es numérico.'; }
elseif(
$precio <= 0){ $mensaje 'El precio no puede ser menor o igual a cero.'; }
else{ 
// continuar... } 
Pero te recomendaría al menos usar dos métodos de validación para que se ingrese información segura a tu base de datos.

Saludos!!
  #4 (permalink)  
Antiguo 28/07/2015, 16:26
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Evitar UPDATE si el input está vacío

Código PHP:
Ver original
  1. $postData = array(
  2.     'color' => 'azul',
  3.     'precio' => 50,
  4.     'stock' => '',
  5. );
  6.  
  7. $_POST = $postData;
  8.  
  9. function allInputsComplete(Array $post, $elements)
  10. {
  11.     $inputs = array_filter($post);
  12.  
  13.     if (count($inputs) < $elements) {
  14.         return false;
  15.     }
  16.  
  17.     return true;
  18. }
  19.  
  20. if (AllInputsComplete($_POST, 3)) {
  21.     echo 'Actualizado';
  22. } else {
  23.     echo 'No Actualizado';
  24. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 29/07/2015, 11:51
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Evitar UPDATE si el input está vacío

Otra opción es que en Mysql pongas un valor por defecto en la columna que quieras.

Etiquetas: formulario, html, input, mysql, 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 16:29.