prova così:
codice:
//query di ricerca dati al database
$birthday = mysql_query("SELECT * FROM $tablenomi ORDER BY data_nascita DESC");
while($DATI = mysql_fetch_array($birthday){
$nome = $DATI['nome_utente'];
$year_of_birth = substr($DATI['data_nascita']),0,4);
$data_nascita = substr($DATI['data_nascita']),5,5);
$data_nascita2 = explode("-",$data_nascita);
$data_nascita = $data_nascita2[1]."-".$data_nascita2[0];
$act_giorno = date("d",$oggi);
$act_mese = date("m",$oggi);
if(($act_giorno < $data_nascita2[1]) && ($act_mese <= $data_nascita2[0]))
{$anni_compiuti = (($anno_attuale - $year_of_birth)-1);}
else
{$anni_compiuti = ($anno_attuale - $year_of_birth);}
echo "$nome compie: $anni_compiuti anni.";
}
un pochino macchinoso ma funziona
tieni presente che però le date le ho considerate archiviate in un campo di tipo date e quindi ad esempio: 1970-11-03 cioè aaaa-mm-gg
buona fortuna!!