Mir fielen jetzt spontan zwei Möglichkeiten ein (JavaScript)...

- Du machst zwei Selectboxen, die unsichtbar sind (für die Kategorie) + eine für die Auswahl der Kategorie. Das hieße dann, dass zuerst die Selectbox mit der Kategorie "Musik" (z.B.) zu sehen ist und beim ändern der Kategorie wird diese versteckt und die zweite wird aktiv. Das ließe sich mit dem EventHandler onChange bewerkstelligen.

- Du versuchst es mit AJAX. Sobald die Kategorie geändert wird holt sich ein PHP-Script, welches von einem JavaScript die Befehle bekommt die Daten aus der Datenbank, lädt sie erst dann in ein Array und gibt sie aus.
Hieße: PHP (Array mit den Kategorien erstellen und als Selectboxen ausgeben) --> HTML (Darstellung der Selectboxen) --> HTML (Auswahl der Kategorie bzw. Änderung) --> JavaScript (Einen Inline-Request ausführen) --> PHP (empfängt den Request, wertet ihn aus. Heißt: Neues Array erstellen, Selectboxen erzeugen) --> JavaScript (bekommt das Ergebnis von PHP zurück) --> HTML (stellt es dar)...

Wobei ich bei so was einfachem eher zu ersterem tendieren würde, Zeit für ein Beispiel habe ich gerade nicht (Lust auch nicht ^^).
Siehe JavaScript Eventhandler onChange.