pues yo lo veo sencillo..... supongo que en el campo de tu BD tiene "fechanacimiento" de tipo date. Listo
Ahora tus 3 combo box para tu formulario uno lleva de id=ldia, lmes y lano , en este caso yo los genero con una funcion:
Código PHP:
function generaFecha(){
//combobox dia
echo "<select name='ldia' class='estiloformulario' id='ldia' >";
echo '<option selected value="0" selected="selected">Día</option>';
for($i=1;$i<32;$i++){
echo '<option value="'.$i.'">'.$i.'</option>';
}
echo '</select>';
echo " <font color='#000000'>/</font> ";
//combobox mes
$meses = array(Mes,Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Setiembre,Octubre,Noviembre,Diciembre);
echo "<select name='lmes' class='estiloformulario' id='lmes'>";
echo '<option selected value="0" selected="selected">'.$meses[0].'</option>';
for($i=1;$i<13;$i++){
echo '<option value="'.$i.'">'.$meses[$i].'</option>';
}
echo "</select>";
echo " <font color='#000000'>/</font> ";
//combobox año
$anoactual = date("Y"); // Año actual
$anolimite = $anoactual + 1;
echo "<select name='lano' class='estiloformulario' id='lano'>";
echo '<option selected value="0" selected="selected">Año</option>';
for($i=1910;$i<$anolimite;$i++){
echo '<option value="'.$i.'">'.$i.'</option>';
}
echo '</select>';
}
y en tu formulario simplemente llamas a <?php generaFecha(); ?> y listo.
Ahora como tu debes saber pasamos los datos por POST y recibimos lo siguiente:
Código PHP:
<?php
$ano = $_POST['lano'];
$mes = $_POST['lmes'];
$dia = $_POST['ldia'];
?>
pero lo recibimos como string, debemos convertirlo al formato date de mysql para poder registrarlo,entonces hacemos lo siguiente:
Código PHP:
<?php
//DAMOS FORMATO A LA FECHA DE NACIMIENTO
$r = $dia."/".$mes."/".$ano;
$date = explode("/",$r);
$nacimiento = date("Y-m-d",mktime(0,0,0,$date[1],$date[0],$date[2]));
?>
solo te queda guardar la fecha de nacimiento en la BD con esta variable : $nacimiento
************************************************** *************
bien ahora lo que quieres es mostrar la edad del usuario en una hoja de detalle pues hacemos esto:
Haces tu query de datos y buscas el campo que contienen la fehca de nacimiento
osea : $nacimiento = $row["fechanacimiento"];
solo nos queda comparar esa fecha con la actual:
Código PHP:
<?php
//CALCULAMOS LA EDAD DEL MIEMBRO
$fecha1 = explode("-",$nacimiento); // fecha nacimiento
$fecha2 = explode("-",date("Y-m-d")); // fecha actual
$Edad = $fecha2[0]-$fecha1[0];
if($fecha2[1]<=$fecha1[1] and $fecha2[2]<=$fecha1[2]){
$Edad = $Edad - 1;
}
?>
y simplemente muestras $Edad; es muy sencillo, espero lo logres, suerte.
p.d: y si se preguntan... que pasa si selecciono el 30 de febrero?? pues preguntas asi una ves obtenido los datos por POST de ahi lo validas con ajax o como quieras
Código PHP:
<?php
$fecha=checkdate($mes, $dia, $ano);
if($fecha==true){
//registro en la bd
}
else{
//fecha invalida
}
?>