Baumstruktur (Parent) Berechnungen

sirdanielxp

Grünschnabel
Hallo,
stehe voll auf dem Schlauch und brauche dringend Hilfe. Ich habe eine Baumstruktur mit Parent ID (muss so sein, da viel Änderungen in der Struktur geschehen) und ich möchte jetzt folgende Berechnung durchführen und bekomme nur Schrott raus.

Hier mal etwas anschaulicher:

Struktur
Code:
---------------------------
ID | PARENT | UMSATZ
---------------------------
1   |         0  |   300
2   |         1  |   400
3   |         1  |   200
4   |         3  |   500
5   |         2  |   200
usw.

Nun möchte ich für jede ID berechnen, was seine Äste verdient haben.

Code:
1 (300 / Astumsatz: 1300)
   |
   ---> 2 (400 / Astumsatz: 200)
             |
             ----> 5 (200 / Astumsatz: 0)
usw.

Die Daten sind in der MySQL-Datenbank, allerdings werden die Umsätze später berechnet, so dass ich die Daten aus der Datenbank auslese und in ein Array speichere

Code:
$daten = array(ID, PARENT, UMSATZ, ASTUMSATZ)

Es wäre super, wenn irgendjemand eine konkrete Idee hätte!

Danke.

SirDanielXP
 
Es gibt mehrere Methoden um das zu lösen. Ein einfacher Weg wäre die Verwendung einer Rekursion.

Hier mal ein Pseudo-Code (ich hab meist nicht genug Zeit ausführlicher zu werden deswegen halte ich mich meist recht knapp)

funktion berechnung(aktuelleebene,aktuellerwert)

schleife addiere alles von aktueller ebene nach aktuellerwert

schleife "gibt es einen Nachfolger dieser Ebene+1"
ruf mich selbst auf mit berechnung(aktuelleebene+1,aktuellerwert)
endeschleife

return aktuellerwert

ende funktion


so nach dem Motto
 
Zurück