Es muy probable que no tengas datos que cumplan con el rango, que no estén correctamente almacenadas las fechas, o bien que al menos una de las variables no tenga lo que supones que tiene (errores de programación).
Por empezar: ¿El campo
fechanacdia es DATE, DATETIME o VARCHAR?
Luego, prueba esto y dime si devuelve correctamente las edades:
Si devuelve NULL, negativos o ceros en la edad, hay un error de datos.
y luego verifiquemos esto:
Si esta última no devuelve datos, o bien no tienes documentos con ese valor, o bien la variable no contiene lo que debería (eso verlo en el foro de PHP).