Baum aus Datenbank erstellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aba
abc
abs
all
antwort
ausgewhlter datensatz
beitrag
datensatz
denkvermgen
eben
eindeutige nummer
eltern
folgende ausgabe
funktion
geschwister
hierarchie
mod
moderator
rekursion
rckfragen
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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)? -
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! -
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 -
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage