Lo de antes ha sido una "pájara".
Yo miraría de hacer algo así
Código PHP:
$parent = 0;
$order1 = 1;
while(isset($array[$parent][$order1])) {
//Imprimes el capitulo
echo $array[$parent][$order1]['text'];
//Order lo seteas a 1
$id = $array[$parent][$order1]['id'];
$order2 = 1;
while(isset($array[$id][$order2])) { //Si existen subcapitulos, existirá!
echo $array[$id][$order2]['text'];
$order2++;
}
$order1++;
}
Y para generar el array:
Código PHP:
while($arr = mysql_fetch_array($sql)) {
//Obtengo los campos parent, order, id, y nombre del cap (text)
$array[$arr['parent']][$arr['order']]['id'] = $arr['id'];
$array[$arr['parent']][$arr['order']]['text'] = $arr['text'];
}
Así creo q te sirve :)