Gör om tabellstrukturen till:
id,
parent,
en_name,
sv_name
Få in allt i en array genom:
Kod:
$result = mysql_query('SELECT * FROM table');
while ( $row = mysql_fetch_array($result) ) {
$arr[$row['parent']][] = $row;
}
Nu har du istället en multidimensionell array som är hyfsat lätthanterlig.
Kod:
function recursive_output($array, $parent) {
for ( $i = 0; $i < count($array[$parent]); $i++ ) {
echo $array[$parent][$i]['en_name'];
echo '<br />';
recursive_output($array, $array[$parent][$i]['id']);
}
}
recursive_output($arr, 0);
Det blir mer lättöverskådligt och enklare att hantera. Har inte testkört koden eller tagit hänsyn till minneskonsumtion men det borde fungera.