Qui:

while($parent!=0) {
$dir = mysql_query("SELECT * FROM nodes WHERE $id=$parent");

c'è un errore:

devi scrivere:

$dir = mysql_query("SELECT * FROM nodes WHERE id=$parent");

cioé devi togliere $ davanti ad id.