Seite 1 von 1

Forenticker selbst gebaut [für eine externe Seite]

Verfasst: 25.02.2008 15:38
von sommer
Hi,

ich versuche gerade einen Forenticker für eine Seite außerhalb von phpbb zu basteln.
Es soll der letzte Thread-Titel angezeigt werden, in dem es ein Posting gegeben hat.
Mit folgender Abfrage klappt das zwar, nur leider wird, wenn es z.B. zwei Postings nacheinander im selben Thread gegeben hat, zweimal derselbe Thread-Titel angezeigt.

Code: Alles auswählen

$sql = "SELECT post_time, topic_title, topic_last_post_id
        FROM phpbb_posts, phpbb_topics
        WHERE phpbb_topics.forum_id IN (1,2,3) AND phpbb_posts.topic_id = phpbb_topics.topic_id
        ORDER BY post_time
        DESC LIMIT 30";
Kann mir vielleicht jemand sagen, wo der Fehler steckt bzw. wie ich die Abfrage ändern muss, damit der Thread-Titel nicht doppelt erscheint.

Verfasst: 25.02.2008 16:22
von S2B
Normal sollte ein

Code: Alles auswählen

GROUP BY topic_id
helfen. :wink:

Verfasst: 25.02.2008 18:50
von sommer
Danke, das sieht schon besser aus. Leider werden jetzt nur neu eröffnete Threads angezeigt, wenn aber ein Thread älter ist und da ein Posting hinterlassen wurde, wird der nicht angezeigt.

Irgendwie steckt da der Wurm drin. Ich komme mit den Tabellen nicht ganz klar.
Kannst du mir da vielleicht nochmal helfen?

Verfasst: 25.02.2008 19:42
von S2B
Hast du das ORDER BY auch drin gelassen?

Verfasst: 25.02.2008 20:03
von sommer
Ja:

Code: Alles auswählen

...
GROUP BY phpbb_topics.topic_id
ORDER BY phpbb_posts.post_time
...
Sollte es raus? Bringt aber leider keine Änderung.

Verfasst: 25.02.2008 20:07
von S2B
Nein, das sollte schon drin bleiben.
Geraten:

Code: Alles auswählen

GROUP BY topic_id, post_id

Verfasst: 25.02.2008 22:13
von sommer
Jetzt werden die letzten Postings angezeigt, aber es kann leider wieder zu selben Thread-Titeln kommen.
Hab mehrere Variaten durchprobiert:

Code: Alles auswählen

GROUP BY phpbb_posts.topic_id, phpbb_posts.post_id
Das ist irgendwie verhext! :-? :grin: