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/