Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich möchte mir auf meiner Homepage ein kleines Forum machen, und zwar solldabei ein Treeview der Postings angezeigt werden.

Ich habe in der Datenbanktabelle die Felder

ID - Eindeutige Nummer für jedes Post

Followup - Übergeordnetes Post

Eben - Ebene des Post

Die Frage ist jetzt, wie bekomme ich daraus einen Treeview?

Die einzige Möglichkeit die mir bis jetzt eingefallen ist, wäre, dass ich für jedes Post einen neuen Select mache, indem ich überprüfe ob es auf diese Nachricht schon eine Antwort gibt.

Also etwa so: select * from tabelle where followup = akutelle_id.

Das ganze in eine rekursive Funktion gepackt, und der Endpunkt ist, wenn es keine Antworten gibt.

Jedoch würden dass schon bei ein paar Postings ziemlich viele Select Abfragen sein, vor allem weil ich auf schlecht feststellen kann, welches Post schon gefunden wurde und ich so auch noch unnötige Abfragen habe.

Weiss noch jemand eine andere Möglichkeit? Ich kann auch die DB-Tabelle ändern, falls da jemand eine Möglichkeit weiss.

Geschrieben

hmm, wird das auch in richtigen Foren verwendet?

Das Einfügen von Posts ist ja wirklich sehr aufwändig.

I hab da noch ne andere Idee, muss ich mal morgen testen, ob die so funktioniert.

Geschrieben

Ich hab das mit den Nested Sets jetzt mal ausprobiert, und ich glaub ich habe das auch soweit verstanden. Nur was ich absolut nicht verstehe ist der Select zum Auslesen des Baumes.

 
SELECT node1.payload, COUNT(*) AS level
FROM bl_f_msg as node1, bl_f_msg as node2
WHERE node1.root_id = 1
AND node2.root_id = 1
AND node1.lft BETWEEN node2.lft AND node2.rgt
GROUP BY node1.lft[/PHP]

Ich versteh da gar nicht, warum das rauskommt, was rauskommt.

Hab schon einwenigs rumprobiert, aber bin zu keinem Ergebnis gekommen.

Ich bräuchte es halt so, dass der Select nicht nur den Teilbaum mit der Wurzel 1 ausspuckt, sondern eben alle. Aber das kommt sich ja mit dem COUNT(*) ins Gehege.

Die andere Möglichkeit wäre natürlich wieder, erst alle root_ids auszulesen, und anschliessend diesen Select für jede root_id einmal auszuführen, was aber uU wieder ziemlich viele selects gibt.

Geschrieben

Post 1:

Ja, manche Foren setzen das ein, da ja viel öfter gelesen wird als geschrieben.

Post 2:

Jeder Thread hat eine Wurzel. Wieso willst du mehrere Threads auf einmal anzeigen?

Gruß Jaraz

Geschrieben

Weil ich eigentlich ursprünglich wollte, dass alle Threads komplett ausgeklappt sind, wie im Windows Explorer, da kannst du auch mehrere Verzeichnisse gleichzeitig ausklappen.

Habs aber jetzt so gelöst, dass man nur die ganzen Wurzeln zieht, und nur ein Thread ausgeklappt wird.

Den SELECT versteh ich aber immernoch nicht ganz.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...