Hallo Forum,
in meiner Datenbank speichere ich eine Baumstruktur
in etwa so:
id | parent_id
-----+----------
1 | 0
-----+----------
2 | 1
-----+----------
3 | 1
-----+----------
4 | 0
-----+----------
5 | 4
-----+----------
6 | 4
Wenn Root 0 ist, besteht der Baum also aus zwei Ebenen.
An oberster die id 1 mit den Unterebnen 2 und 3 und 4
mit den Unterebenen 5 und 6.
Um aus dieser Struktur eine verschachtelten Liste zu
bauen habe ich mir eine Funktion gebaut.
Etwa so:
function buildtreeList ($parentid)
{
global $tree;
$statement = "
SELECT *
FROM `content`
WHERE `parent_id` = ".$parentid;
...
$result = mysql_query($statement);
$result_num = mysql_num_rows($result);
if ($result_num!=0)
{
while ($row = mysql_fetch_assoc($result))
{
$tree.= "<li>".$row['site_id']."</li>";
buildTreeList ($row['site_id']);
$str."</li>\n";
}
$tree.= "</ul>\n";
}
}
buildtreeList(0);
echo $tree;
Wie man sieht, ruft sich die Funktion rekursiv selbst immer
wieder auf und befüllt so die Variable $tree mit einer verschachtelten
Liste. Das funktioniert soweit, aber ich will versuchen, die
Funktion umzuschreiben. Und zwar so, dass sie ein mehrdimensionales Array befüllt.
Irgendwie komme ich aber nicht auf die Idee, wie ich der
Funktion mitteile, an welcher Stelle, also Dimension des
Arrays die Elemente aus dem Resultset anhänge.
Hat jemand einen Tipp für mich ?
danke und
beste gruesse,
heinetz