Foros del Web » Programando para Internet » PHP »

Utilización de fechas en PHP y MySQL con un formulario HTML

Estas en el tema de Utilización de fechas en PHP y MySQL con un formulario HTML en el foro de PHP en Foros del Web. Hola, a todos. Pues mi problema es el siguiente: He creado un formulario de registro que pide, nombre, apellidos, correo electrónico, contraseña, fecha de nacimiento ...
  #1 (permalink)  
Antiguo 02/07/2013, 05:13
jorgemibanez
Invitado
 
Mensajes: n/a
Puntos:
Utilización de fechas en PHP y MySQL con un formulario HTML

Hola, a todos. Pues mi problema es el siguiente:

He creado un formulario de registro que pide, nombre, apellidos, correo electrónico, contraseña, fecha de nacimiento y sexo (o género). La fecha de nacimiento son tres "select" uno para el día, otro para el mes y otro para e año, y abajo otro select para "sexo".

Cuando recojo los datos con el código PHP al pulsar el botón de submit, en la base de datos MySQL solo aparecen nombre, apellidos, correo electrónico, contraseña (sifrada, por seguridad) pero la fecha me aparece 0000-00-00 y el sexo aparece sex, no hombre o mujer, se sobreentiende que mi código no está recogiendo los valores del select.

Alguien que me ayude con esto, se lo agradecería bastante ya que he intentado resolverlo por mi mismo buscando en foros, pero no he encontrado nada, bueno, muchas gracias.

PD:
Uso Wamp, el código PHP:

<?php
$name = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['reg_email__'];
$password = $_POST['reg_passwd__'];
$birthday_day = $_POST['birthday_day'];
$birthday_month = $_POST['birthday_month'];
$birthday_year = $_POST['birthday_year'];
$sex = $_POST['select_sex'];
$reqlen = strlen ($name) * strlen($lastname) * strlen($email) * strlen($password) * strlen($birthday_day) * strlen($birthday_month) * strlen($birthday_year) * strlen($sex);
if ($reqlen > 0) {
require("connect_db.php");
$password = md5($password);
mysql_query("INSERT INTO users VALUES('$name','$lastname','$email','$password','b irthday_day','birthday_month','birthday_year','sex ','')");
mysql_close($link);
echo "Se ha completado su registro con éxito";
} else {
echo "Por favor, rellene todos los campos.";
}
?>

Otro PHP (para conectar con la base de datos):

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

El HTML, no lo pongo porque es extenso pero sepan que es un formulario sencillo, sus inputs, select y botón submit.
  #2 (permalink)  
Antiguo 02/07/2013, 05:37
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Utilización de fechas en PHP y MySQL con un formulario HTML

Bueno, si el código es tal cual lo pones aquí, la respuesta es sencilla, las variables de fecha y sex no tienen el símbolo "$"

Código PHP:
mysql_query("INSERT INTO users VALUES('$name','$lastname','$email','$password','b irthday_day','birthday_month','birthday_year','sex ','')"); 
De todas formas, si en tu base de datos el formato de la fecha es tipo DATE o DATETIME; no puedes subir las tres variables de día, mes y año así juntas, tendrás que construir una fecha con ellas antes en php.

Pero vamos, tu problema más inmediato es definir bien esas variables.
  #3 (permalink)  
Antiguo 02/07/2013, 05:51
jorgemibanez
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Utilización de fechas en PHP y MySQL con un formulario HTML

Bueno, muchas gracias, he resuelto ya un problema, más fácil de lo que pensé, pero ahora para terminar me podrías decir como construir la fecha ya que la idea es que el campo birthday de la BD que es de tipo DATE aparezca con los valores recogidos con los select de fecha, ¿Cómo puedo hacer esto?, gracias de antemano.
  #4 (permalink)  
Antiguo 02/07/2013, 06:02
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Utilización de fechas en PHP y MySQL con un formulario HTML

Buenas otra vez,
mira, pues es bien sencillo, primero debes crear un string con los tres valores, y luego convertirlos a un valor válido con la función "date".

DATE
Código PHP:
$fecha $birthday_year."-".$birthday_month."-".$birthday_day;
$fechaFinal date("Y-m-d"$fecha); 
Como puedes ver, el formato es invertido al español, es decir, primero el año, luego el mes y luego el día, y se guardará así en base de datos. Pero si quieres mejorar esto ya es sólo cuestión de buscar más info sobre la función "date" ahora que sabes que existe.
  #5 (permalink)  
Antiguo 02/07/2013, 06:23
jorgemibanez
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Utilización de fechas en PHP y MySQL con un formulario HTML

Muchas gracias liranan, me has ayudado bastante, es algo sencillo lo se, pero es que estoy empezando a aprender, ya me funciona el formulario.

Etiquetas: formulario, html, mysql, registro, select
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 11:26.