Seite 2 von 2

Verfasst: 18.10.2006 13:48
von MT
Genau! Das mit zB. die letzten 10 Threads mache ich wohl am besten mit LIMIT.

ABer kann es sein, dass ich das mit den Joins machen muss? Da ich ja eigentlich zwei Tab. miteinander verknüpfen muss..also users und topics laut angaben der Doku.

Verfasst: 18.10.2006 14:55
von Gumfuzi

Code: Alles auswählen

SELECT t.topic_id, t.topic_title, t.topic_last_post_id, u.user_id, u.username, p.post_id, p.topic_id, p.post_time, p.poster_id FROM phpbb_topics t, phpbb_users u, phpbb_posts p WHERE p.forum_id = XX AND t.topic_id = p.topic_id AND t.topic_last_post_id = p.post_id AND p.poster_id = u.user_id ORDER BY p.post_time LIMIT 10
Ist aber nicht getestet.

Die Tabellen, die Du "verknüpfen" möchtest, mussen je ein Feld haben, das gleich ist (meist die ID), das setzt Du als Bedingung in die WHERE-Klausel und schon nimmt es die restlichen Felder (wenn in SELECT definiert) richtig dazu.

Was da der Unterschied zu den JOIN's ist, kann ich Dir leider nicht sagen.

Ausserdem ist noch zu beachten, dass ev. nicht jeder User jedes Forum ansehen darf.

Verfasst: 18.10.2006 16:40
von MT
ok, funktioniert soweit..Danke, nur es hat einen kleinen Bug: Es werden bei dem Usernamen nicht nur die Ersteller angezeigt, sondern auch die, welche eine Antwort gepostet haben.

Hab es anfangs mit
"t.topic_poster = u.user_id"
"p.poster_id = t.topic_poster"

probiert, zeigt dann aber nur die themen an, wo noch keine Antworten sind.

Sonst funktionierts. :grin:

Verfasst: 18.10.2006 16:49
von Gumfuzi
ja klar, es sollten die namen der Postingautoren kommen, welche zuletzt in den jew. Threads gepostet haben.
... und die werden ja auch angezeigt.

Was für einen User möchtest Du denn angezeigt bekommen? den Threadersteller?

Verfasst: 18.10.2006 16:53
von MT
jop, das wär Klasse :>

Verfasst: 18.10.2006 17:02
von Gumfuzi

Code: Alles auswählen

SELECT t.topic_id, t.topic_title, t.topic_poster, t.topic_last_post_id, u.user_id, u.username, p.post_id, p.topic_id, p.post_time, p.poster_id FROM phpbb_topics t, phpbb_users u, phpbb_posts p WHERE p.forum_id = 91 AND t.topic_id = p.topic_id AND t.topic_last_post_id = p.post_id AND t.topic_poster = u.user_id ORDER BY p.post_time LIMIT 10

Verfasst: 18.10.2006 17:12
von MT
:o DANKÖ
Gumfuzi yu're my hero :>