Es muy mala idea una función recursiva (o conjunto de funciones) para extraer información de la base de datos, consumes recursos innecesariamente.
Lo ideal es que puedas cargar todas las opciones del menú con una sola consulta y guardarlo en un array con una estructura que te permita recorrerlo fácilmente... algo como esto:
http://www.forosdelweb.com/f18/aport...3/#post4284145