Sofern die Tabellen miteinander etwas zu tun haben, kann man diese mit JOINS verknüpfen![]()
Hallo zusammen,
Ich bin gerade dabei, ein kleines Forum zu schreiben (und nein, ein bereits bestehendes ist keine Lösung, da es 1. nicht gross wird und 2. perfekt auf unsere Seite angepasst werden muss). Es geht auch eher um das MySQL Statement.
Die Situation:
==========
- Ich habe drei Tabellen:
forum_cat (catID | titel | description) // Die Forumskategorien, Foren
forum_thread (threadID | catID | titel | userID) // Die Beiträge innerhalb einer Kategorie, mit Ersteller
forum_beitrag (bID | threadID | userID | datum | text) // Der Beitrag selber
- Ausserdem habe ich folgende Ansichten:
Forenübersicht
Themenübersicht (innerhalb einer Kategorie)
Der Beitrag selber
Wie ein Forum halt so aufgebaut ist
Der Beitrag selber stellt kein Problem dar.
Probleme bereiten mir die Forenübersicht, wo ich den jeweils neusten Beitrag verlinken möchte. Sowie die Kategorienübersicht, wo ich einerseits die Themen geordnet haben möchte, andererseits wiederum zum neusten Beitrag verlinken.
Und zwar weiss ich nicht, wie ich die Queries "verlinken" soll, um möglichst wenig Queries zu haben.
Natürlich kann ich alles einzel abfragen mit mehreren Queries, aber geht es auch anders?
Sofern die Tabellen miteinander etwas zu tun haben, kann man diese mit JOINS verknüpfen![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Hm ja klar, das versuch ich ja auch
Aber bei der Übersichtsseite müsste ich ja dann über 3 Tabellen joinen:
- forum_cat die Kategorien auslesen -> bei forum_thread alle Threads dieser Kategorie suchen -> bei forum_beitrag den neusten Beitrag der jeweiligen Threads bestimmen.
Und da steh ich an![]()
Hast du dir denn JOINs überhaupt mal angesehen, bzw. erste Versuche damit gemacht?
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Wow, das ging aber schnell
Ja hab ich, über zwei Tabellen hab ich auch überhaupt keine Probleme damit.
Diesen Query nutze ich für die Übersicht in der einzelnen KategorieCode:$threadquery = mysql_query("SELECT t.threadID, t.catID, t.titel, b.threadID, b.datum FROM veranstalter_forum_thread t LEFT JOIN veranstalter_forum_beitrag b ON b.threadID = t.threadID WHERE t.catID = '" . $catID . "' ORDER BY b.datum DESC");
Und wo scheitert du jetzt dran? Du kannst es doch um ein weiteres LEFT JOIN ... ON ... einfach erweitern?![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Hier:
und zwar müsste ich die catID ASC sortieren, wohingegen datum DESC sortiert werden sollte, da ich ja den jeweils neusten Beitrag verlinken möchte, trotzdem aber die Foren nach catID ausgeben möchte...Code:mysql> SELECT c.catID, c.titel as head, c.description, t.threadID, t.catID, t.threadID, t.titel, b.bID, b.threadID, b.datum, b.userID --> FROM veranstalter_forum_cat c --> LEFT JOIN veranstalter_forum_thread t ON t.catID = c.catID --> LEFT JOIN veranstalter_forum_beitrag b ON b.threadID = t.threadID --> GROUP BY b.threadID --> ORDER BY c.catID");
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)