Sedan skriver du en funktion som listar alla rader som har child_of = 0 (som i ditt exempel Grupp 1). För varje gång du sedan får fram en ny rad så anropar du funktionen med den nya radens id nummer. På så sätt kommer du att skapa en hierki som du vill.
function menu($child_of)
{
$db = new Database;
if (!isset($child_of))
{
$child_of = 0;
}
$SQL = "SELECT
id,
name
FROM
tabell
WHERE
child_of = " . $child_of . "";
$rSet = $db->dbQuery($SQL);
while ($data = mysql_fetch_array($rSet))
{
echo $data[1];
menu($data[0]);
}
}
Tack för svaret, men det blir en väldigt massa SQL anrop utav din lösning. Dock kanske jag kan använda ditt exempel med lite modifikation.
Jag har en bra SQL-server ;) Nej, men du har helt rätt, det var mest för att illustrera hur du kan gå tillväga. Som de andra beskriver, ladda hem allt i en fråga och sortera sedan!
Nedanstående artikel hjälpte mig att komma igång med trädstrukturer. Den beskriver två olika tillvägagångssätt samt för- och nackdelar med dessa. Om det är ett ordentligt träd är nog "Modified Preorder Tree Traversal" att föredra.
Men sen då? Har försökt loopa ut min array, men förstår inte alls hur jag ska göra. Har testat med foreach-loopar hit och dit. När man söker på detta ämne finns nästan bara artiklar/information om hur man gör motsatsen, t.ex. skapar en array likt den ovan av en katalogstruktur.
Men hur får jag ut array'en ovan som en unsorted list?
Vilket skriver ut hela trädet som en nästlad lista. Men om jag nu vill ha ut samma formatering fast i en selectlista? Precis som listan "Forum Jump" här på wF, nere till höger på varje undersida. Får verkligen inte till det...