Jump to content


Photo

Contar Usuarios Por Idade A Partir Da Data De Nascimento


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 MCAsite

MCAsite

    Turista

  • Usuários
  • 29 posts
  • Sexo:Masculino
  • Localidade:Mogi das Cruzes

Posted 20/11/2012, 11:31

Estou tentando adaptar uma função de datas de nascimento. Até agora consegui listar todos os usuarios com suas idades, mas a ideia é implantar um grafico com usuarios que tenham até 5 anos, 18 anos, 25 anos etc.

Segue o que consegui até agora após algumas pesquisas:
<?php   
        // Calcula corretamente a idade de acordo com a data informada
function calcular_idade($date, $date2=null) {
    $date2 = ($date2 ? $date2 : date('Y-m-d'));
    if (strpos($date,'/')) {
        list($dia,$mes,$ano) = preg_split('/[\/\ ]/',$date);
    } else {
        list($ano,$mes,$dia) = preg_split('/[-\ ]/',$date);
    }
   if (strpos($date2,'/')) {
        list($diah,$mesh,$anoh) = preg_split('/[\/\ ]/',$date2);
    } else {
        list($anoh,$mesh,$diah) = preg_split('/[-\ ]/',$date2);
    }
    $idade = $anoh - $ano;
    if ($mesh < $mes) {
        $idade--;
    } else {
        if ($mesh == $mes) {
            if ($diah < $dia) {
                $idade--;
            }
        }
    }
    return $idade;
}
?>

<?php
// Formata data aaaa-mm-dd recebida do BD para dd/mm/aaaa
function iconvdat($datasql) {
        if (!empty($datasql)){
        $p_dt = explode('-',$datasql);
        $data_br = $p_dt[2].'/'.$p_dt[1].'/'.$p_dt[0];
        return ($data_br);
        }
}
?>

  <table border="1" cellspacing="0" cellpadding="0">
<?php
        //Lista a idade que todos os membros terão em 10/02/2013
        $queryI = "SELECT membros_nome, membros_nascimento FROM membros";
        $resultI = mysql_query($queryI) or die (mysql_error());
        while ($linhaI = mysql_fetch_assoc($resultI)) {
                $nome = $linhaI['membros_nome'];
                $nascimento = iconvdat($linhaI['membros_nascimento']);
                $idade = calcular_idade("".$nascimento."", "10/02/2013");
                echo "<tr>\n";
        echo "<td>".$nome."</td>\n";
        echo "<td>".$nascimento."</td>\n";
        echo "<td>".$idade." anos</td>\n";
                echo "</tr>\n";

        }
        ?>
</table>


Bem, a ideia agora é efetuar esta consulta contando quantos usuarios tem 5 anos, quantos tem 18 anos etc para adaptar neste grafico:
//Gera Grafico de Idades
function geraGrafico($largura, $altura, $valores, $referencias, $tipo = "p3"){
           $valores = implode(',', $valores);
           $referencias = implode('|', $referencias);
 
           return "http://chart.apis.google.com/chart?chs=". $largura ."x". $altura . "&amp;chd=t:" . $valores . "&amp;cht=p3&amp;chl=" . $referencias;
     }
         $grafico = geraGrafico(500, 200, array("40", "60"), array("5 Anos", "18 Anos")) ?>
    <img src="<?php echo $grafico ?>" title="Grafico gerado pelo Google Chart" />





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq