Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta sobre PHP, MySQL e ingreso de fecha con date

Estas en el tema de Consulta sobre PHP, MySQL e ingreso de fecha con date en el foro de PHP en Foros del Web. Hola, mi problema es el siguiente: He intentado hacer un sistema de registro de usuarios, uno de los requisitos del formulario es 'fecha de nacimiento ...
  #1 (permalink)  
Antiguo 04/07/2013, 00:42
jorgemibanez
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Consulta sobre PHP, MySQL e ingreso de fecha con date

Hola, mi problema es el siguiente: He intentado hacer un sistema de registro de usuarios, uno de los requisitos del formulario es 'fecha de nacimiento (birthday)' que está formado por tres select, día, mes y año.

Sucede que al ingresar los datos en la tabla de la base de datos, los ingresa todos menos 'birthday', la que ingresa como 0000-00-00, alguna sugerencia, aquí les pongo los códigos PHP y algunos datos de la tabla.

La idea es que funcione así que si me pueden recomendar otra forma más fácil o algo, en el formulario o PHP, pues lo acepto.

Gracias de antemano.

PHP (Conectar base de datos):

<?php
$link = mysql_connect("localhost","root","");
if ($link) {
mysql_select_db("register",$link);
}
?>

PHP (registro)

<?php
$name = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['reg_email__'];
$password = $_POST['reg_passwd__'];
$birthday_year = $_POST['birthday_year'];
$birthday_month = $_POST['birthday_month'];
$birthday_day = $_POST['birthday_day'];
$birthday = (Aquí ya he puesto infinidad de códigos y nada, ¿algún consejo?)
$sex = $_POST['select_sex'];
$reqlen = strlen ($name) * strlen($lastname) * strlen($email) * strlen($password) * strlen($birthday_year) * strlen($birthday_month) * strlen($birthday_day) * strlen($birthday) * strlen($sex);
if ($reqlen > 0) {
require("connect_db.php");
$password = md5($password);
mysql_query("INSERT INTO users VALUES('$name','$lastname','$email','$password','$ birthday_year','$birthday_month','$birthday_day',' $birthday','$sex','')");
mysql_close($link);
echo "Se ha completado su registro con éxito";
} else {
echo "Por favor, rellene todos los campos.";
}
?>

Datos tabla:

name-----------------varchar
lastname-------------varchar
email------------------varchar
password------------int(12)
birthday_year-------int(4)
birthday_month-----int(2)
birthday_day---------int(2)
birthday---------------date -----------Este es el dato que se guarda como 0000-00-00
sex---------------------int(1)
user--------------------int(11)---auto-increment-(primary)
  #2 (permalink)  
Antiguo 04/07/2013, 00:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Consulta sobre PHP, MySQL e ingreso de fecha con date

porque tanta complicación, hace un campo date, y despues haces un preg_split o explode
a ver
en un campo date o varchar o el que quieras usas menos memoria, menos campos

http://php.net/manual/es/function.explode.php para explode
http://www.php.net/manual/es/function.preg-split.php $preg_split con expreciones regulares
  #3 (permalink)  
Antiguo 04/07/2013, 00:52
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Consulta sobre PHP, MySQL e ingreso de fecha con date

El valor que envías para el campo birthday es incorrecto, por eso se guarda en 0:

El tipo DATE se usa cuando necesita sólo un valor de fecha, sin una parte de hora. MySQL recibe y muestra los valores DATE en formato 'YYYY-MM-DD' . El rango soportado es de '1000-01-01' a '9999-12-31'. comprueba nuevamente que dato envias, imprime la consulta INSERT para saberlo.
__________________
Fere libenter homines, id quod volunt, credunt.
  #4 (permalink)  
Antiguo 04/07/2013, 01:15
jorgemibanez
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta sobre PHP, MySQL e ingreso de fecha con date

Lo he conseguido, gracias a todos.

Última edición por jorgemibanez; 04/07/2013 a las 01:41

Etiquetas: date, fecha, formulario, ingreso, mysql, registro, select, tabla, usuarios
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 13:42.