Zum Inhalt springen

Treeview mit PHP/MySQL für Forum


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...