Foros del Web » Programando para Internet » PHP »

Problema con insercion de nuevos registros en blanco

Estas en el tema de Problema con insercion de nuevos registros en blanco en el foro de PHP en Foros del Web. Resulta que he creado un sencillo formulario para poder insertar nueva información en una tabla de la base de datos, pero a veces cuando inserto ...
  #1 (permalink)  
Antiguo 18/02/2007, 04:46
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 5 meses
Puntos: 1
Problema con insercion de nuevos registros en blanco

Resulta que he creado un sencillo formulario para poder insertar nueva información en una tabla de la base de datos, pero a veces cuando inserto la información al mismo tiempo me inserta nuevos registros en blanco, de tal forma que aparecen en la base de datos registros con la informacion y registros con los campos vacios. Porque ocurre esto? Os pongo el codigo:

Código HTML:
<?
//Conexion
mysql_connect("x","x","x");

mysql_select_db("x"); 

$nombre = $_POST["nombre"]; 
$apellido = $_POST["apellido"]; 
$telefono = $_POST["telefono"]; 
$sexo = $_POST["sexo"]; 
$fecha = date("d/m/Y");
$hora = strftime("%H:%M:%s");

$sSQL="insert into personas (nombre,apellido,telefono,sexo,fecha,hora) values ('$nombre','$apellido','$telefono','$sexo','$fecha','$hora')";

mysql_db_query("x",$sSQL);
?>
<FORM METHOD="POST" ACTION="nuevo.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Apellido<br>
<INPUT TYPE="TEXT" NAME="apellido"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
Sexo<br>
<INPUT TYPE="TEXT" NAME="sexo"><br>
<INPUT TYPE="SUBMIT" value="insertar">
</FORM> 
Gracias!
  #2 (permalink)  
Antiguo 18/02/2007, 07:51
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Re: Problema con insercion de nuevos registros en blanco

Bueno creo que tu problema esta en entender el funcionamiento del codigo PHP, porque la parte de MySql esta bien.
Primero sobre el codigo PHP se empieza a leer de principio a fin, es decir que cada vez que llamas a ese formulario, primero abre una conexion a la base de datos, recupera los campos del formulario y hace una insercion a la base de datos, esa es la razon por la que tienes filas en blanco, deberias controlar eso:
Código PHP:
if(isset($_POST['nameSubmitInsertar']))
{
    
//aqui pones tu codigo para recuperar campos
    //e insertar a la base de datos

Otras observaciones en tu codigo esta en el HTML un input siempre debe tener su atributo name, otro aspecto recuperas la fecha en formato (dd/mm/yyyy) y si insertas la fecha en ese formato solo insertaras vacio (0000-00-00) si quieres insertar una fecha en mysql debe ser en formato yyyy-mm-dd, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 18/02/2007, 12:38
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Re: Problema con insercion de nuevos registros en blanco

Movido desde BD a PHP, razón?....

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 24/02/2007, 03:24
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Problema con insercion de nuevos registros en blanco

Hola de nuevo.
Con lo del name en el imput te refieres a que me falta el del submit? el resto ya los puse.
En cuanto a lo de la fecha, me funciona correctamente según lo tengo yo. En cambio La hora, curiosamente siempre me inserta en el valor de los segundos: 11

Así esta correcto el codigo?

Código HTML:
<FORM METHOD="POST" ACTION="nuevo.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Apellido<br>
<INPUT TYPE="TEXT" NAME="apellido"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
Sexo<br>
<INPUT TYPE="TEXT" NAME="sexo"><br>
<INPUT TYPE="SUBMIT" NAME="Insertar" value="insertar">
</FORM>

<?
if(isset($_POST['nameSubmitInsertar']))
{
//Conexion
mysql_connect("x","x","x");

mysql_select_db("x"); 

$nombre = $_POST["nombre"]; 
$apellido = $_POST["apellido"]; 
$telefono = $_POST["telefono"]; 
$sexo = $_POST["sexo"]; 
$fecha = date("d/m/Y");
$hora = strftime("%H:%M:%s");

$sSQL="insert into personas (nombre,apellido,telefono,sexo,fecha,hora) values ('$nombre','$apellido','$telefono','$sexo','$fecha','$hora')";

mysql_db_query("x",$sSQL);
} 
?> 
PD: acabo de ver que cuando me inserta registros en blanco, es al cargar la pagina del formulario. Cuando entro directamente me inserta dos registros en blanco sin ni siquiera darle al submit ni nada, unicamente con cargar la pagina.
  #5 (permalink)  
Antiguo 26/02/2007, 14:13
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Problema con insercion de nuevos registros en blanco

deadlykyo me lo podrias mirar? Gracias.
  #6 (permalink)  
Antiguo 04/03/2007, 04:15
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Problema con insercion de nuevos registros en blanco

Con ese sistema no funciona, no me añade ningún dato a la base, ni los que deseo insertar ni los registros en blanco.
  #7 (permalink)  
Antiguo 05/03/2007, 13:50
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Problema con insercion de nuevos registros en blanco

no hay otra manera de arreglarlo?
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 22:00.