Det virker lidt kompliceret og ufleksibelt det du laver her Gilles. Ville det ikke være bedre at oprette din databasetabel, hvor hver række har sit eget kategori_id og et overordnet_id? dvs. giv forældrene på øverste niveau et parent_id på 0, og børnene tager parent_id'et af deres forældres kategori_id. Dette ville give dig ubegrænset dybde og vil være lettere at kode, når du gengiver træet. For eksempel:
SQL for dit første niveau af hierarki -
SELECT * FROM (your_table) WHERE parent_id=0
SQL for dit andet niveau af hierarki -
SELECT * FROM (your_table) WHERE parent_id=(category_id of first level)
SQL for dit tredje niveau af hierarki -
SELECT * FROM (your_table) WHERE parent_id=(category_id of second level)
og så videre...