Allora devi realizzare prima di tutto un range di anni da presentare nel between di WHERE senza tutta quella roba la.
Se il form ti presenta per esempio 18-25 farai un list + explode.
LIST($min , $max ) = explode("-", $_POST['range']);
select quel che vuoi da dove ti pare
WHERE year(datanascita) between '$min' AND '$max'
AND DAYOFYEAR(NOW()) >= DAYOFYEAR(datanascita)
Tenendo presente che l'anno sara' dal 1 gennaio al 31 dicembre. cioe' se ti serve anno compiuto bisognera valutare' anche mesi e giorni. Questa e' la ragione della AND.
![]()