Datensätze aus phpBB DB lesen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
MT
Mitglied
Beiträge: 9
Registriert: 17.10.2006 13:45

Beitrag 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.
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag 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.
MT
Mitglied
Beiträge: 9
Registriert: 17.10.2006 13:45

Beitrag 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:
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag 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?
MT
Mitglied
Beiträge: 9
Registriert: 17.10.2006 13:45

Beitrag von MT »

jop, das wär Klasse :>
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag 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
MT
Mitglied
Beiträge: 9
Registriert: 17.10.2006 13:45

Beitrag von MT »

:o DANKÖ
Gumfuzi yu're my hero :>
Antworten

Zurück zu „Coding & Technik“