Foros del Web » Programando para Internet » PHP »

Insertar fecha en mysql

Estas en el tema de Insertar fecha en mysql en el foro de PHP en Foros del Web. Hola! Estoy creando un formulario, que incluye nombre de usuario, email, contraseña, fecha de nacimiento y sexo. He conseguido insertar todos los datos en mi ...
  #1 (permalink)  
Antiguo 02/02/2013, 12:31
 
Fecha de Ingreso: enero-2013
Ubicación: Málaga
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Información Insertar fecha en mysql

Hola!

Estoy creando un formulario, que incluye nombre de usuario, email, contraseña, fecha de nacimiento y sexo. He conseguido insertar todos los datos en mi base de datos mysql excepto la fecha de nacimiento y el sexo. El dato fecha tiene la peculiaridad de ser un script porque quedaba mas bonito estéticamente, pero después no se como insertarlo en la columna fecha de mysql (con formato DATE), ya que al ser un script y, además, al ser el formato de mysql año-mes-día, me presenta dificultades. Algo parecido me ocurre con el dato "sexo", no se que tipo de columna he de agregar a la base de datos y tampoco la función.
Si alguien pudiera echarme una mano le estaría muy agradecido :)

Os adjunto el código de formulario y las funciones (siento si se ha desordenado al insertarlo aquí, he omitido el script porque el mensaje quedaba muy largo):

<div class="section">
<?php if(!isset($status)): ?>

<h1></h1>

<form id="form1" action="formulario.php" method="post">

<label for="username">Nombre de usuario
<?php
if ($username == "error" || $existusername == "error"):
if ($existusername == "error"):
echo "<span style=color:red>El usuario " . $usernameValue . " ya existe";
else:
echo "<span style=color:red>+ de 5 caracteres A-z (No núm)";
endif;
else:
echo "<span style=color:#7fbf4d>+ de 5 caracteres A-z (No núm)</span>";
endif; ?>
</label>

<input tabindex="1" name="username" id="username" type="text" class="text <?php if ($existeU == 1): echo $existusername; else: echo $username; endif;?>" value="<?php echo $usernameValue;?>" />

<label for="password1">Contraseña <?php if ($password1 == "error"): echo "<span style=color:red>"; else: echo "<span style=color:#7fbf4d>"; endif; ?>De 5 a 12 caracteres alfanuméricos</span></label>
<input tabindex="2" name="password1" id="password1" type="password" class="text <?php echo $password1 ?>" value="" />

<label for="password2">Repetir Contraseña <?php if ($password2 == "error"): echo "<span style=color:red>"; else: echo "<span style=color:#7fbf4d>"; endif; ?>Debe ser igual a la anterior</span></label>
<input tabindex="3" name="password2" id="password2" type="password" class="text <?php echo $password2 ?>" value="" />

<label for="fecha">Fecha de nacimiento</label><form action="" name="someform">
<select id="daydropdown">
</select>
<select id="monthdropdown">
</select>
<select id="yeardropdown">
</select>
</form>

<script type="text/javascript">

//populatedropdown(id_of_day_select, id_of_month_select, id_of_year_select)
window.onload=function(){
populatedropdown("daydropdown", "monthdropdown", "yeardropdown")
}
</script>
<label for="email">Email <span>
<?php
if ($email1 == "error" || $existEmail == "error"):
if ($existEmail == "error"):
echo "<span style=color:red>El email " . $emailValue . " ya existe";
else:
echo "<span style=color:red>Escribe un email válido por favor";
endif;
else:
echo "<span style=color:#7fbf4d>Escribe un email válido por favor</span>";
endif; ?>
</label>
<input tabindex="5" name="email" id="email" type="text" class="text <?php echo $email1 ?>" value="<?php echo $emailValue ?>" />
<label for="sexo">Sexo&nbsp; &nbsp;<INPUT type="radio" name="sexo" value="Varón"> Varón &nbsp; &nbsp;<INPUT type="radio" name="sexo" value="Mujer"> Mujer
<br></br>
<label for="condiciones"><name="condiciones" name="acepto" value="acepta"/>Al pulsar "Enviar" aceptas las <a href="pagina_condiciones.html">Condiciones de Uso</a></label>


<div>
<input tabindex="6" name="send" id="send" type="submit" class="boton" value="Enviar" />
</div>
</form>


<?php else: ?>
<?php
if(insertarReg($usernameValue, $passwordValue, $fechaValue, $emailValue)):?>
<h1>Registro tramitado</h1>

<div class="respuesta_insert">
<p>Gracias por registrarte!</p>
<br><br>
<p>Te hemos enviado un mail a <span style="color:#7fbf4d"><?php echo $emailValue; ?></span> para que confirmes el alta. Por favor, comprueba también la bandeja de correo no deseado</p>
<p>Nos vemos pronto!</p>
<br><br>
<p>Si tienes algún problema contactanos</p>
<!-- <p>La clave que se enviará por URL es --> <?php //echo $url; ?> </p>
</div>


A continuación las funciones:

//FUNCION PARA INSERTAR EL REGISTRO EN LA TABLA
function insertarReg($username_, $password1_, $fecha_, $email_){


$clave = generar_txtAct(20,false);
//Montamos la estructura del enlace con la clave.
$url = "activar.php?id=" . $clave;



$servidor = "hostinger.es";
$usuario = "u50159072";
$password = "";
$sdb = "u50159072";

$ilink3=mysql_connect($servidor,$usuario,$password ) or die(mysql_error());
mysql_select_db($sdb,$ilink3);

$inserta= "insert into users_temp (usersTemp,password,fecha_de_nacimiento,email,fecA lta,txt_Activ) values ('$username_','$password1_','$fecha_','$email_',CU RDATE(),'$clave')";
$resultado3=mysql_query($inserta,$ilink3) or die (mysql_error());

if (!$resultado3)
return false;
else
return true;
}



function validateUsername($username){
$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789-_";
$caracterKO = 0;
if(strlen($username) < 5):
return false;
else:
for ($i=0; $i<strlen($username); $i++){
if (strpos($permitidos, substr($username,$i,1))===false){
$caracterKO = 1;
}
}
endif;
if ($caracterKO == 1 || strlen($username) <= 4):
return false;
else:
return true;
endif;
}


function validateExistUsername($username){

$servidor = "hostinger.es";
$usuario = "u50159072";
$password = "";
$sdb = "fbdatab";

$ilink=mysql_connect($servidor,$usuario,$password) or die(mysql_error());

mysql_select_db($sdb,$ilink);
$consulta= "select usersTemp from users_temp where usersTemp = '$username'";
$resultado=mysql_query($consulta,$ilink) or die (mysql_error());
if (mysql_num_rows($resultado)>0)
return false;
else
return true;
}

function validatePassword1($password1){
if(strlen($password1) < 5 || strlen($password1) > 12)
return false;

else if(!preg_match("/^[0-9a-zA-Z]+$/", $password1))
return false;

else
return true;
}

function validatePassword2($password1, $password2){
//NO coinciden
if($password1 != $password2)
return false;
else
return true;
}




function validateEmail($email){

if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return true;
else
return false;
}

function validateExistMail($mail){
/*Teneis que declarar las variables $servidor, $usuario,$password y
$sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/
$servidor = "hostinger.es";
$usuario = "u50159072";
$password = "";
$sdb = "u50159072";

$ilink2=mysql_connect($servidor,$usuario,$password ) or die(mysql_error());
mysql_select_db($sdb,$ilink2);
$consulta2= "select id_usersTemp from users_temp where email = '$mail'";
$resultado2=mysql_query($consulta2,$ilink2) or die (mysql_error());
if (mysql_num_rows($resultado2)>0)
return false;
else
return true;
}
?>
  #2 (permalink)  
Antiguo 02/02/2013, 17:39
ERR
 
Fecha de Ingreso: febrero-2012
Ubicación: Escazu
Mensajes: 18
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Insertar fecha en mysql

Hola, para que ingrese en la base de datos tiene que tener el formato mysql
YYYY-MM-DD

Para lo del sexo puedes usar un
Enum('Masculino','Femenino')

deberías crear una función ConexionDb para no tener que estar reiterando código de conexión constantemente, solo llamas a la función y listo.

Saludos.
  #3 (permalink)  
Antiguo 03/02/2013, 09:14
 
Fecha de Ingreso: enero-2013
Ubicación: Málaga
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Insertar fecha en mysql

Buenas ERR,

Muchas gracias por tu respuesta. He hecho antes lo de insertar en mysql otro tipo de campos, pero es la primera vez que intento insertar la fecha en mysql con un script, perdona mi ignorancia, soy muy novato en esto. ¿Te refieres a que el script debe tener formato YYYY-MM-DD en ese orden?

Por lo que me dices de crear una función tienes razón, no lo había pensado, voy a hacerlo :)

Etiquetas: mysql
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 04:25.