ti faccio l' esempio che ho usato io 
Codice PHP:
$db = mysql_connect( 'localhost', 'root', '' );
$dbtree = &new MySQL_LevelManager( $db, 'prove' ); // passi la connessione al db mysql e il nome del database
$dbtree->setLevels(3); // setti i livelli, da usare solo in amministrazione ... ne vuoi aggiungere 1 ? $dbtree->setLevels(4); ...
$dbtree->addSubLevel( NULL, 'ARTICOLI', 'Utensili di vario tipo' ); // aggiungi una radice, con NULL per prima voce
$dbtree->addSubLevel( NULL, 'GIOCHI', 'Giochi per il PC' );
$dbtree->addSubLevel( 'ARTICOLI', 'MARTELLI', 'Questi sono martelli' ); // aggiungi ramo MARTELLI alla RADICE ARTICOLI ( e descrizione )
$dbtree->addSubLevel( 'ARTICOLI', 'FORBICI', 'Queste sono forbici' ); // aggiungi ramo FORBICI alla RADICE ARTICOLI ( e descrizione )
$dbtree->addSubLevel( 'MARTELLI', 'DI LEGNO', 'Martelli di legno' ); // aggiungi ramo DI LEGNO alla RADICE MARTELLI ( e descrizione )
$dbtree->addSubLevel( 'MARTELLI', 'DI FERRO', 'Martelli di ferro' ); // aggiungi ramo DI FERRO alla RADICE MARTELLI ( e descrizione )
// popolamento TABELLA FOGLIE ... fata come ti pare ... MA
// per risalire alla gerarchia devi mettere la label o nome della radice padre
// ESEMPIO:
INSERT INTO MIE_FOGLIE VALUES( '', 'DI LEGNO', 'martello legno tipo 4', 'peso 7kg', '' ... etc etc )
// "DI LEGNO" lo schiaffera' sotto ramo DI LEGNO in gerarchia
// ESEMPIO RISULTATO OTTENUTO
$queryTree = &$dbtree->getArray( 'MIE_FOGLIE' );
if( $queryTree !== false ) {
echo '<pre>';
var_dump( $queryTree );
echo '</pre>';
}
alla classe aggiungero' delSubLevel con force per i sottoArticoli ... poi penso basta, la debuggo un po' e la posto