Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Kundenbaum darstellen

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.07.2005
    Beiträge
    52

    Kundenbaum darstellen

    Hallo Forum,

    ich arbeite gerade an einem Projekt und nun muss ich sowas wie einen Kundenbaum darstellen. Ich hoffe Ihr könnt mir irgendwie einen Tip geben, wie ich das am Besten implementieren kann.

    Und zwar habe ich in der Datenbank eine
    Tabelle Verkauf = (id, prev, kundenid, bestellt)
    wobei prev immer die kundenid des vorherigen Kunden ist.
    Für den "rootkunden" steht in prev NULL.

    Wie kann ich nun die ganzen Kunden und Unterkunden darstellen und dies am leichtesten implementieren?

    Aussehen sollte es ca. wie auf dem Bild im Anhang.

    Ich hoffe auf eure Hilfe. Danke im voraus.

    Tybalt0125

  2. #2
    Registrierter Benutzer
    Registriert seit
    12.02.2006
    Beiträge
    22
    Moin,

    also auf anhieb fällt mir dazu das Schlagwort Nested Set ein. Schau mal [hier]. Evtl. ist das was für Dich. Wobei ich Dir da weder Vor- noch Nachteile nennen kann.

    Viele Grüße

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.07.2005
    Beiträge
    52
    Zitat Zitat von Peltfrog Beitrag anzeigen
    Moin,

    also auf anhieb fällt mir dazu das Schlagwort Nested Set ein. Schau mal [hier]. Evtl. ist das was für Dich. Wobei ich Dir da weder Vor- noch Nachteile nennen kann.

    Viele Grüße
    Danke für den Link, ich werde mir das gleich genauer anschauen, aber so wie ich auf den ersten Blick gesehen habe, scheint das nicht das richtig für mich zu sein.

    Die Datenbankstruktur ist mir (fast) unwichtig, ich frage mich nur, wie ich das mit PHP am besten darstellen kann, ähnlich wie in dem Anhang.

  4. #4
    Registrierter Benutzer
    Registriert seit
    12.02.2006
    Beiträge
    22
    Auf der Testseite ist es als Verzeichnisbaum aufgebaut. Das kannst Du leicht in Deine funktionen übernehmen. Du bekommst alles über diese Nested Set Klasse. Der Vorteil ist, dass viele (jeder mit Windows PC) sich in Baumstruckturen wie dieser zurecht findet. Ich kann Dir aber nicht sagen wie weit Du diese Strucktur verzweigen kannst. (Also wieviele Subnodes Du erstellen kannst.)

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo tybalt0125,

    Die Datenbankstruktur ist mir (fast) unwichtig, ich frage mich nur, wie ich das mit PHP am besten darstellen kann, ähnlich wie in dem Anhang.
    Mit der Darstellung meinst du sicherlich die SQL Abfragen und den Zugriff auf die einzelnen Knoten. Das erledigt die Klasse. Ich kenne die oben genannte Klasse nicht, das Konzept löst allerdings genau dein Problem.

    Die Einarbeitung in Nested Sets lohnt sich auf jeden Fall da es einmal gelernt sehr hilfreich sein wird.

    Alternativ kannst du die Knoten rekursiv durchlaufen, was allerdings Nachteile in der Performance mit sich bringt.

    Grüße,
    nEox

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.07.2005
    Beiträge
    52

    Thumbs up

    Zitat Zitat von nEox Beitrag anzeigen
    Hallo tybalt0125,


    Mit der Darstellung meinst du sicherlich die SQL Abfragen und den Zugriff auf die einzelnen Knoten. Das erledigt die Klasse. Ich kenne die oben genannte Klasse nicht, das Konzept löst allerdings genau dein Problem.

    Die Einarbeitung in Nested Sets lohnt sich auf jeden Fall da es einmal gelernt sehr hilfreich sein wird.

    Alternativ kannst du die Knoten rekursiv durchlaufen, was allerdings Nachteile in der Performance mit sich bringt.

    Grüße,
    nEox
    Nein, genau das meine ich nicht. Ich möchte einfach vorhandene Daten als Baumstruktur darstellen, wie kann ich das mit PHP machen?
    Code:
    id | prev | kundenid | bestellt
    1   NULL       2              10
    2       1          3              20
    3       1          5              30
    4       2          10            10
    5       2          9               15
    6       3          3               10
    Diese Daten sind vorhanden.

    So soll der Baum aussehen aber dann halt in der Darstellung wie auf dem angehängten Bild im ersten Post:
    Code:
    2
    |--3
    |   |--10
    |   |--9
    |--5
        |--3
    Es geht mir nicht um die Datenstruktur in der Datenbank, die sollte so bleiben, was ich wissen will, wie ich am Besten den Baum zeichnen kann?!? Ich möchte also nur wissen, wie ich das PHP technisch am Besten im Browser darstellen kann und am Besten wie auf dem Bild.

    Oder verstehe ich jetzt alles falsch?

  7. #7
    Registrierter Benutzer
    Registriert seit
    17.09.2006
    Ort
    Merzig
    Beiträge
    13
    Ich denke, das Stichwort heißt hier Rekursion

    Das ist nur sehr grob (kam mir gerade in den Sinn), syntaktisch falsch und soll nur veranschaulichen, wie man es machen kann.

    for (i=0; i<anzahlkunden; i++) {
    zeigeKunden(kundennummer(i));
    }

    function zeigeKunden(kundennummer) {
    zeigeParents(kundennummer);
    zeigeChilds(kundennummer);
    }

    function zeigeChilds(kundennummer) {
    zeigeChildDaten();
    if (child has children) {
    zeigeChilds(children);
    }
    }

    Gruß
    cplinux
    http://www.cplinux.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •