salve a tutti, ho un problema "logico" e non riesco a venirne fuori, è una cosa semplice (spero), ma le mie cognizioni mentali non mi permettono di trovare una maledetta soluzione

ho una tabella:

codice:
id | parent | nome
 1 |      0 | livello 1 a
 2 |      0 | livello 1 b
 3 |      0 | livello 1 c
 4 |      1 | livello 2 a
 5 |      1 | livello 2 b
 6 |      1 | livello 2 c
 7 |      2 | livello 2 d
 8 |      2 | livello 2 e
 9 |      2 | livello 2 f
10 |      4 | livello 3 a
11 |      4 | livello 3 b
12 |      4 | livello 3 c
che dovrebbe essere stampata a video così:

codice:
LIVELLO 0
|
|__Livello 1 a
|  |
|  |____Livello 2 a
|  |    |
|  |    |____Livello 3 a
|  |    |____Livello 3 b
|  |    |____Livello 3 c
|  |
|  |____Livello 2 b
|  |____Livello 2 c
|
|__Livello 1 b
|  |
|  |____Livello 2 d
|  |____Livello 2 e
|  |____Livello 2 f
|
|__Livello 1 c
e questo possibilmente senza fare una query al db ogni volta
avevo pensato di salvare tutto in un array e poi rielaborarlo

cosa ne dite?

vi ringrazio in anticipo

ciao!