entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Insertar dato por default si un input está vacío

Tengo un formulario que va a registrar nombre,apellidos, etc. y tengo un campo que pide un número, ya registro bien, ahora quisiera que si el campo número va vacío que inserte algo por default, ejemplo : 0.

favorito
Tengo un formulario que va a registrar nombre,apellidos, etc. y tengo un campo que pide un número, ya registro bien, ahora quisiera que si el campo número va vacío que inserte algo por default, ejemplo : 0.

En el formulario obtengo el valor del input así:

<div class="form-group">
<label for="name">No. interior</label>
<input type="number"  name="no_interior"  class="form-control" placeholder="23" value="<?php if(isset($_POST['no_interior'])) echo $_POST['no_interior']; ?>">

                    </div>

PHP

//investigué y según de esta forma se hace, pero no me funciona
$no_interior = "no tiene";
    if(isset($_POST["no_interior"]) && !empty($_POST["no_interior"])){
       $no_interior  = $_POST["no_interior"];
    } 

$query = "INSERT INTO tabla (.....,no_interior,...) VALUES
    (...,'" . $no_interior . "',,...)";

Pero no me registra nada en la bd.

Gracias.

1voto

carlossevi comentado

¿No te registra nada o no te registra el valor en dicho campo?

En el código que pones hay una cosa extraña: en el PHP parece el nombre de variables POST que esperas es no_interior pero sin embargo el name del input es no.

0voto

x4mp73r comentado

@carlossevi Gracias por la observación, así es, copié mal mi código, ya corregí el name. En realidad lo tengo correctamente, pero no me inserta el campo vacío ni nada.

3 Respuestas

3votos

x4mp73r Puntos13390

Eh resuelto el problema, eh cambiado:

if(isset($_POST["no_interior"]) && !empty($_POST["no_interior"])){
       $no_interior  = $_POST["no_interior"];
    } else{

 $no_interior  = "Sin numero";

}

Por :

$no_interior = (!empty($_POST['no_interior'])) ? $_POST['no_interior'] : 'Sin numero';

De esa manera me ingresa el texto por default en caso esté vacío.

0voto

Peter comentado

Gracias por compartir la solución!

1voto

dairon Puntos17120

Existen muchas formas lógicas de solucionarlo, una de ellas es en la db poner ese campo con valor por default = 0 y no tienes que validar nada en el php ;) si la base de datos detecta que no hay valor de entrada entonces pone ese campo con su valor por default en este caso 0, creo que sería una forma optima y rápida de resolverlo ;)
Saludos Dairon
PD: en esta Página encontraras más detalles sobre el trabajo con default en mysql

0voto

x4mp73r comentado

¿Podrías mostrar algo de código si no es mucha molestia?. Lo digo para que sea una respuesta.
¡Gracias!

1voto

dairon comentado

En realidad no lleva nada de código, es lógica. solo tienes que abrir tu cliente de mysql y en el field numero o no o como lo hallas nombrado le estableces el default igual a 0 y cuando insertes los valores no necesitas ni validaros ni hacerle mas nada, si lo dejan en blanco en el form de HTML simplemente la base de datos lo pondrá en cero.
haciendo una búsqueda ahora encontré esta Página donde hablan más detalladamente del default en base de datos y su uso
Saludos

3votos

ankeorum Puntos7210

A mi me da la impresión por tu código que estás cometiendo un error.

<div class="form-group">
    <label for="name">Número</label>
    <input type="number"  name="no"  class="form-control" placeholder="23" value="<?php if(isset($_POST['no_interior'])) echo $_POST['no_interior']; ?>" >
</div>

Si ese es tu código para el formulario, el campo nombre sería $_POST['no'] ya que ese es el "name" del campo. Por lo tanto la validación sería:

$no_interior = "no tiene";
    if(isset($_POST['no']) && !empty($_POST['no'])){
       $no_interior  = $_POST['no'];
    } 

$query = "INSERT INTO tabla (.....,no_interior,...) VALUES
    (...,'" . $no_interior . "',,...)";

SaludoS!

0voto

x4mp73r comentado

Gracias,copié mal mi código, lo tengo escrito correctamente, ya edité la pregunta.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta