Ver Mensaje Individual
  #25 (permalink)  
Antiguo 28/05/2009, 16:15
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Saber cuantos años

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&iacute;a</option>'
    for(
$i=1;$i<32;$i++){ 
        echo 
'<option value="'.$i.'">'.$i.'</option>';                    
    }
    echo 
'</select>';                
    echo 
"&nbsp;<font color='#000000'>/</font>&nbsp;";
    
    
//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 
"&nbsp;<font color='#000000'>/</font>&nbsp;";
    
    
//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&ntilde;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
}

?>
__________________
Quitenme la vida pero no la bebida.

Última edición por cesarpunk; 28/05/2009 a las 16:40