kostenloser Webspace werbefrei: lima-city


Baum aus Datenbank erstellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mrjack

    mrjack hat kostenlosen Webspace.

    Hallo!

    Ich habe eine Datenbank "site" mit den Einträgen "site_id" (eindeutige Nummer), "site_parent" (ID der Elternseite), "site_headline" (Titel), usw.
    Jetzt möchte ich in php einen Baum aufbauen.
    Ich benötige eine Funktion, bei der man als Parameter eine site_id übergibt und die dann die Eltern, so wie die Geschwister und Kinder ausgibt.

    A
      AA
      AB
         ABA
         ABB
         ABC
      AC

    (in diesem Fall ist AB ausgewählt)


    Wie realisier ich das?
    Übrigens: Die Hierarchie ist nicht beschränkt, d.h. es können mehrere Ebenen als im Beispiel vorkommen.

    Danke

    Beitrag geändert: 8.8.2007 10:11:46 von mrjack
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mrjack schrieb:
    Wie realisier ich das?


    Rekursion...
    Immer ne mysql anfrage "Where site_id = ".$site_parent usw.
    das in eine funktion bauen und diese für jedes ausführen.
    Is eigentlich ganz einfach.
    Genauere Code-Beispiele brauchts eigentlich nicht, den Rest müsstest du selbst können, sonst nutze mal Google, Wikipedia (Rekursion) oder php.net

    -AlienDwarf
  4. Autor dieses Themas

    mrjack

    mrjack hat kostenlosen Webspace.

    Danke für deine Antwort.

    Also die Kinder kann ich schon auslesen, sieht folgendermaßen aus:

    function get_children($id, $abs)
    {
    	$query = mysql_query("SELECT site_id, site_headline FROM sol_site WHERE site_parent='$id'");
    	while ($row = mysql_fetch_array($query)) {
    		echo str_repeat("-", $abs);
    		echo $row['site_headline'] . cs_html_br(1);
    		get_children($row['site_id'], $abs+1);
    	}
    }


    Wie bekomm ich jetzt aber ALLE Geschwister und die Eltern und Großeltern (HÖCHSTENS 2 Ebenen nach oben)?
  5. Autor dieses Themas

    mrjack

    mrjack hat kostenlosen Webspace.



    haureus schrieb:
    Hi,

    als Mod wollte ich nur ankündigen, dass dieser Thread geschlossen ist.
    Weitere Threads zu dem Thema sind über die Suche zu finden.

    *CLOSED*

    Bei Rückfragen PN an mich.


    Willst du mich verarschen? Haben Moderatoren nicht ein "M" neben ihrem Rang?

    Außerdem ist der Thread noch offen!
  6. o*******r




    haureus schrieb:
    Hi,

    als Mod wollte ich nur ankündigen, dass dieser Thread geschlossen ist.
    Weitere Threads zu dem Thema sind über die Suche zu finden.

    *CLOSED*

    Bei Rückfragen PN an mich.


    Willst du mich verarschen? Haben Moderatoren nicht ein "M" neben ihrem Rang?

    Außerdem ist der Thread noch offen!


    Ja, er wollte Dich bzw. alle hier verarschen.
    Und nun wieder b2topic... ^^

    GrEetz, Olliander
  7. site_parent als parent_id auslesen

    falls parent_id != 0 dann
    lese alle Datensätze mit site_parent = praent_id aus
    nehme vom ersten die site_parent als parent_id
    fange von vorne an
    andernfalls
    ausgabe



    Beitrag geändert: 8.8.2007 17:23:41 von lucas9991
  8. Autor dieses Themas

    mrjack

    mrjack hat kostenlosen Webspace.

    Danke für die Antwort!

    Leider übersteigt die Sache mit den Rekursion irgendwie mein Denkvermögen.
    Könnte mir nicht irgendwer ein Skript schreiben, das folgendes macht:

    Ich habe einen Datensatz mit dessen id, titel und parent_id). Ich will jetzt folgende Ausgabe haben:
    1. Eltern-Titel
    1.1 Geschwister-Titel (alphabetisch)
    1.2 Geschwister-Titel (a)
    1.3 Ausgewählter Datensatz (eventuell fett gedruckt)
    1.3.1 Kind-Titel (a)
    1.3.2 Kind-Titel (a)
    ...
    1.4 Geschwister-Titel (a)
    ...

    D.h. 1 parent, alle Geschwister und alle Kinder
    Wie packt man all das in 1 Funktion?

    PS: Geht das nicht auch ohne Rekursion?

    Danke
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!