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 . "&chd=t:" . $valores . "&cht=p3&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" />