Hai dimestichezza con i linguaggi di scripting come javascript?
In questo caso potresti partire da un plugin sviluppato per il Framework opensource jQuery come il Vertical Accordion e modificarlo rendendo la creazione dell'elenco dinamico e basato sui dati presenti nel database.
Qui troverai un tutorial sulla parte client side, ci sono anche alcuni esempi
designchemical.com/lab/jquery-vertical-accordion-menu-plugin/getting-started/