Autor |
Nachricht |
WurstOderWas
Threadersteller
Dabei seit: 26.03.2003
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Mi 19.01.2005 10:35
Titel [PHP + MySQL) Problem: Element inkl."Child-Elemente&quo |
|
|
Hi Leute,
sitze hier gerade an einem Problem...
Bin dabei mir eine dynamische Navigation zu bauen, bei der auch neue Ebenen angelegt werden können. Der User darf sich aussuchen, auf welche Ebene(root oder eigene) seine neue Ebene zugreifen soll.
Soweit so gut, aaaber...
Angenommen ich möchte ein Element in der root-Ebene löschen, auf das ein Element in der Ebene 2 zeigt, auf das wiederum ein Element in der Ebene 3 zeigen könnte usw.
Frage: Gibt es da nen schnieken mySQL-Befehl, der automatisch für mich die richtigen Datensätze inklusive seiner "Child-Elemente" killt?
Hier mal die Struktur der DB
menu_levels und menu_items sind die tabellen
in menu_levels sind alle Ebenen, ausser der root-Ebene drin, die ist unlöschbar sozusagen. (ID, Relation, Bezeichnung)
menu_items sind dann halt die punkte in den ebenen.
(ID, Level, Relation, Bezeichnung, Bild, Link, Position)
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 19.01.2005 12:00
Titel
|
|
|
kurz: nö. gerade baummanipulationen mittels relationalen sind ne ziemlich harte sache...
|
|
|
|
|
Anzeige
|
|
|
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht:
|
Verfasst Mi 19.01.2005 12:02
Titel
|
|
|
du wirst dich einfach depth-first durch die datenbank wühlen müssen. das is zwar aufwendig, aber im kern ziemlich trivial.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 19.01.2005 12:06
Titel
|
|
|
Das geht aber dann doch nur mittels Rekursion?
|
|
|
|
|
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht:
|
Verfasst Mi 19.01.2005 12:14
Titel
|
|
|
XSchinkenX hat geschrieben: | Das geht aber dann doch nur mittels Rekursion? |
ich hab mal gelernt, daß man jede rekursion iterativ auflösen könnte, wenn man denn wollte. aber --ja-- ich würds rekursiv machen.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 19.01.2005 12:19
Titel
|
|
|
Wenn man genügend Informationen hat, kann man ja echt seinen SQL-String im Vorfeld zusammenbauen. Dafür braucht man aber mindestens die Position des Knotens im Baum und jeweils die Anzahl der Kindelemente... Aber über eine Schleife oder eine Rekursion n Queries an eine Datenbank zu senden, halte ich für nicht sinnvoll.
Dennoch: Ich habe mir an anderen Modellen wie nested sets o.Ä. bereits die Zähne ausgebissen. Bäume löschen, Knoten hinzufügen (Parent, Siblings)... kein Problem. Hart wird es, wenn Teilbäume verschoben werden müssen.
Ich bastle noch dran, aber was eigentlich als ein Tag Arbeit für meine Maschine veranschlagt war, beansprucht mich nunmehr bereits 3 Wochen (natürlich mache ich das nicht hauptberuflich )... Schwierig schwierig.
Wer hier praktische Vorschläge hat, der melde sich bitte! Wäre ich auch dran interessiert.
//
ich glaub übrigens, dass es am einfachsten über DOM und XML geht. Warum für alles ne doofe Datenbank benutzen? Das würde aber gleichzeitig einem "Ich raffs einfach nicht"-Geständnis gleichkommen
Zuletzt bearbeitet von am Mi 19.01.2005 12:20, insgesamt 1-mal bearbeitet
|
|
|
|
|
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht:
|
Verfasst Mi 19.01.2005 12:38
Titel
|
|
|
XSchinkenX hat geschrieben: | Aber über eine Schleife oder eine Rekursion n Queries an eine Datenbank zu senden, halte ich für nicht sinnvoll. |
das findet ja nich unter last statt. die paar mal, wo jemand nen baum löschen will... das muss das boot abkönnen.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 19.01.2005 12:39
Titel
|
|
|
Aber der Faktor kommt ja hinzu, wenn man echt mal mit mehr Seitenzugriffen zu kämpfen hat... rein hypothetisch jetzt...
|
|
|
|
|
|
|
|
Ähnliche Themen |
ie6 Div ändert feste Breite wg. Child Element
[JS]Problem bei document.write in Input-Element
über css ein Element nach definiertem Element ansprechen
swapDepth Problem: Element im nachfolgenden Bild sichtbar
Problem mit Worddokument inkl. Excel Tabelle
inkl. USt vs. inkl. 19% MwSt Kleinunternehmer e-Shop Hinweis
|
|