Foros del Web » Programando para Internet » PHP »

Calcular Edad.... Estadisticas...

Estas en el tema de Calcular Edad.... Estadisticas... en el foro de PHP en Foros del Web. tengo en PHP este calculo de edad... pero quiero convertirlo a Mysql... por que no tengo las edades de los usuario pero si sus fechas ...
  #1 (permalink)  
Antiguo 18/09/2008, 07:03
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta Calcular Edad.... Estadisticas...

tengo en PHP este calculo de edad... pero quiero convertirlo a Mysql...

por que no tengo las edades de los usuario pero si sus fechas de nacimiento..

osea... algo asi:
Código PHP:
<?php
require("conexion.php");

function 
edad($edad){

global 
$conexion;
global 
$database;
$edad=intval($edad);

//Consulta de edad
mysql_select_db($database$conexion);
$query_edad="select (aqui va el calculo) as edad, count(*) as totalconesaedad from usuarios where edad = $edad";
$edad mysql_query($query_edad$conexion) or die(mysql_error());
$row_edad mysql_fetch_assoc($edad);
$totalRows_edad mysql_num_rows($edad);

return 
$row_edad['totalconesaedad'];
}

// INICIO TOTAL
mysql_select_db($database$conexion);
$query_total "select count(*) as total from `usuarios`";
$total mysql_query($query_total$conexion) or die(mysql_error());
$row_total mysql_fetch_assoc($total);
$totalRows_total mysql_num_rows($total);
// FIN TOTAL
?>
Imprimiendo resultados:
Código PHP:
<table width="50%" border="0" cellspacing="0">
<?php
$edad
="0";
while(
$edad <= '100'){
 
?>
      <tr>
        <td bgcolor="#EEEEEE"><strong>Edad:</strong></td>
        <td bgcolor="#EEEEEE"><strong>Cantidad</strong></td>
        <td bgcolor="#EEEEEE"><strong>%</strong></td>
      </tr>
      <tr>
        <td><?php echo $edad?></td>
        <td><?php echo edad($edad); ?></td>
        <td><?php $result=(edad($edad)*100)/$row_total['total']; echo $result?>
%</td>
      </tr>
<?php
$edad
++;
 } 
?>
</table>

entonces asi tengo una tabla de distribucion de frecuencias de todas las edades...
con 100 intervalos...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por farra; 18/09/2008 a las 10:26
  #2 (permalink)  
Antiguo 18/09/2008, 07:20
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Calcular Edad.... Estadisticas...

Asi es como hayo la Edad en PHP (pero no me sirve, la necesito en mysql):
Código PHP:
if (!function_exists("edad")) {
function 
edad($fechanac){
 
//fecha actual
$dia=date(j);
$mes=date(n);
$ano=date(Y); 
 
//fecha de nacimiento
$dianaz=date("j"strtotime($fechanac));
$mesnaz=date("n"strtotime($fechanac));
$anonaz=date("Y"strtotime($fechanac));
//si el mes es el mismo pero el dia inferior aun no ha cumplido años, le quitaremos un año al actual
if (($mesnaz == $mes) && ($dianaz $dia)) {
$ano=($ano-1); }
//si el mes es superior al actual tampoco habra cumplido años, por eso le quitamos un año al actual
if ($mesnaz $mes) {
$ano=($ano-1);}
//ya no habria mas condiciones, ahora simplemente restamos los años y mostramos el resultado como su edad
$edad=($ano-$anonaz);
return 
$edad;

}

el siguiente paso seria hayar la edad media y La mediana, pero eso mas adelante...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #3 (permalink)  
Antiguo 18/09/2008, 10:29
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Calcular Edad.... Estadisticas...

Ejemplo:

Edades l Cantidad de Usuarios l Porcentaje

1 ................................ 23 ................................ 4%
2 ................................ 55 ................................ 8%
3 ................................ 70 ................................ 12%
.
.
.
hasta 100 años
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 18/09/2008, 14:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Calcular Edad.... Estadisticas...

¿Porque no haces el calculo de edades dentro de el bucle while?
Y en vez de imprimir, las metes en un arreglo para luego ordenarlas con sort()
Y ya imprimir con un foreach.
  #5 (permalink)  
Antiguo 01/10/2008, 13:32
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Calcular Edad.... Estadisticas...

la consulta mysql me tira un error..
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #6 (permalink)  
Antiguo 01/10/2008, 13:39
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Calcular Edad.... Estadisticas...

se puede tambien hacer en PHP?
nose, le pongo algo asi: where fechanac >= $fechaini and fechanac <= $fechafin

y hago una funcion que calcule esas dos fechas, pero nose como hacer por que esas 2 fechas deben calcularse teniendo en cuenta el dia y el mes ya que que pasaria si hoy cumple años?

lo que quiero sacar es una estadistica por edad

Edad / cantidad de usuarios con esa edad
1 / 12
2 / 32
3 / 43
4 / 23
5 / 54
.
.
.
.
99 / 31

etc....
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #7 (permalink)  
Antiguo 01/10/2008, 13:49
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta Respuesta: Calcular Edad.... Estadisticas...

osea, suponiendo que hoy es 05/10/2008
y el usuario nacio el 06/10/1986

Hoy el va a contar como 21 años pero mañana el va a estar en la categoria de 22 años

osea que mi estadistica de edades cambia todos los dias cada ves que alguien cumple años...


con php seria algo asi:

Código PHP:

$hoy
=date("Y-m-d");
$fecini=""// esto quiero hallar
$fecfin=""// esto quiero hallar

// INICIO EDADES
mysql_select_db($database$con);
$query_edad="SELECT  count(*) as total FROM usuarios WHERE Fecha_Nac >= '$fecini' AND Fecha_Nac <= '$fecfin'";
$edad mysql_query($query_edad$con) or die(mysql_error());
$row_edad mysql_fetch_assoc($edad);
$totalRows_edad mysql_num_rows($edad);
// FIN EDADES 
pero nose como hayar esas 2 fechas..
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #8 (permalink)  
Antiguo 01/10/2008, 14:18
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Calcular Edad.... Estadisticas...

Hoy 1 de Octubre!

Esta consulta me trae todos los usuarios que tienen 21 años:
*incluyendo los que cumplieron hoy 21
*excluyendo los que cumpleron hoy 22

SELECT Idusuario
FROM usuarios
WHERE Fecha_Nac >= '1986-10-01'
AND Fecha_Nac <= '1987-10-01' Order by Fecha_Nac ASC

osea real que tienen ahora mismo 21 años, mañana seguro sera distinto el resultado por que habran cumpleañeros...

lo que quiero es que esas 2 fechas fecha1 y fecha2 se generen automaticamente con php..

una funcion que mandandole la edad como parametro me traiga las 2 fechas...

function fechaslimites($edad){
$hoy=date("Y-m-d");
$fecha=explode("-", $hoy);
$dia=$fecha[2]; // dia
$mes=$fecha[1]; // mes
$ano=$fecha[0]; // ano
}
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
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 19:18.