Sto affrontando anche io un problema simile, solo che come puoi vedere ciò che voglio fare io è moooolto laborioso, se vuoi darci un'occhiata la discussione la trovi qua: http://forum.html.it/forum/showthrea...hreadid=746201

Per risolvere il tuo problema comunque ti basta una funzione del genere:
nome pagina prova2.php
codice:
<?
include 'connect.inc.php'; //includi il file con cui ti connetti al db

function display_children($parent, $level) { 
	//Seleziono tutti i figli che hanno come genitore $parent_id
	$sql = "SELECT * FROM trees WHERE parent_id LIKE '".$parent."'";
	$result = mysql_query($sql)or die(mysql_error()); 

	//visualizza tutti i figli
	while ($row = mysql_fetch_array($result)) { 
		//indentazione e visualizzazione della categoria èper ogni figlio
		echo str_repeat('',$level);
		print ''.$row['category'].'
'; 

		// call this function again to display this 	
		// child's children 
		display_children($row['id'], $level+1); 
   } 
} 
if (!$_GET['category'] && !$_GET['level'])
	display_children(0,0);
else
	display_children($_GET['category'], $_GET['level'])
?>
La funzione l'ho costruita basandomi su un db con il seguente dump:

codice:
#
# Struttura della tabella `trees`
#

CREATE TABLE trees (
  id int(11) NOT NULL auto_increment,
  category varchar(50) NOT NULL default '',
  parent_id int(11) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

#
# Dump dei dati per la tabella `trees`
#

INSERT INTO trees VALUES (1, 'pantaloni', 0);
INSERT INTO trees VALUES (2, 'velluto', 1);
INSERT INTO trees VALUES (3, 'cotone', 1);
INSERT INTO trees VALUES (4, 'pelle', 1);
INSERT INTO trees VALUES (5, 'jeans', 1);
INSERT INTO trees VALUES (6, 'levi\'s', 5);
INSERT INTO trees VALUES (7, 'ck', 5);
INSERT INTO trees VALUES (8, 'maglioni', 0);
INSERT INTO trees VALUES (9, 'di lana', 8);
INSERT INTO trees VALUES (10, 'di cotone', 8);
e basandomi sulla funzione postata qui:
http://www.sitepoint.com/article/hie...-data-database



edit -> nel codice questa riga echo str_repeat(' ',$level); al posto di metterci tre spazi mettici 3 o quanti vuoi & n b s p; scritto tutto attaccato, serve per indentare il testo.