Seite 1 von 2
News Forum in PHP auslesen
Verfasst: 04.09.2007 18:24
von Markus_83_nrw
Hallo phpbb'ler,
ich habe ein problem.
Ich habe mir eine Routine geschrieben welche ein bestimmtest Forum und dessen beiträge ausliest und auf einer Seite veröffentlicht.
Das problem darin besteht nun, ich möchte immer nur den ersten Beitrag der Threads eines Forums herrauslesen und auf der Seite veröffentlichen. Leider werden auch die Antworten veröffentlicht. Gibt es eine Möglichkeit immer nur den ersten Beitrag eines Threads (eines bestimmten Forums) herauszufinden?
Hier ist meine Routine die das auslesen übernimmt:
Code: Alles auswählen
SELECT pu.username AS Username, pp.post_time AS Time, ppt.post_subject AS Überschrift, ppt.post_text AS Text FROM phpbb_users pu, phpbb_posts_text ppt, phpbb_posts pp WHERE pu.user_id = pp.Poster_id AND pp.post_id = ppt.post_id AND ppt.post_id > 2 AND pp.forum_id = 1 order by pp.post_time desc
Vielen dank im Voraus.
Gruß Markus
[Edit] Fragestellung eindeutiger gemacht, da die alte zu missverständnissen geführt hat[/Edit]
Verfasst: 04.09.2007 20:21
von gn#36
Verfasst: 05.09.2007 08:45
von Markus_83_nrw
Danke, werde ich heute Abend versuchen, bin gerade auf der Arbeit.
Melde mich dann wenn es geklapt hat.
Gruß Markus
[edit] Es hat leider nicht geklapt, jetzt zeigt er mir immer nur den letzten beitrag. Ich benötige aber eine Abfrage, die es mir erlaubt, immer die eigentliche news, welche ja am anfang eines Threads steht, herauszufinden.
kann mir dort jemand helfen? [/edit]
Verfasst: 06.09.2007 22:46
von Markus_83_nrw
Keiner ne Idee?
Gruß Markus
Verfasst: 06.09.2007 23:29
von gn#36
Dreh doch die Sortierung um. Wenn du vorher nur den letzten Beitrag gefunden hast dann findest du so den ersten. Also aus
das hier machen:
Verfasst: 07.09.2007 07:57
von Markus_83_nrw
Hallo und danke erstmal für die Antwot.
Das verstehe ich jetzt nicht wenn ich nur die Sotierung umdrehe finde ich ja nur den ersten Beitrags des ganzen Forums, aber nicht den eines jeden threads in dem Forum news. Oder bin ich da jetzt verkehrt?!
Gruß Markus
[edit]
Ich lese aber gerade, das ich mich in der Fragestellung falsch ausgedrückt habe und habe diese abgeändert. (siehe ersten Beitrag) Sorry for that. Hat jemand eine lösung mit der richtigen Fragestellung?
Sorry nochmal, mein fehler und danke im Voraus
Gruß Markus
[/Edit]
Verfasst: 07.09.2007 11:09
von gn#36
Ach so...
Nagut wie wäre es denn mit sowas (welche Felder du genau brauchst kannst du ja noch anpassen):
Code: Alles auswählen
SELECT * FROM phpbb_topics t, phpbb_posts p, phpbb_posts_text pt, phpbb_users u WHERE t.first_post_id = p.post_id AND p.post_id = pt.post_id AND u.user_id = p.poster_id AND t.forum_id = {FORUM_ID}
Das sollte von allen Themen im Forum jeweils den ersten Beitrag finden. Die Themen kannst du natürlich noch nach Datum sortieren oder nach der ID des letzten Posts (steht im Feld t.last_post_id) oder oder...
Verfasst: 08.09.2007 18:04
von Markus_83_nrw
Hallo,
ich habe es ausprobiert und es hat funktioniert.
Hier meinen neuen Code:
Code: Alles auswählen
SELECT pu.username AS Username, pp.post_time AS Time, ppt.post_subject AS Überschrift, ppt.post_text AS Text
FROM phpbb_topics pt, phpbb_users pu, phpbb_posts_text ppt, phpbb_posts pp
WHERE pt. topic_first_post_id = pp.post_id
AND pu.user_id = pp.Poster_id
AND pp.post_id = ppt.post_id
AND ppt.post_id > 2
AND pp.forum_id = 1
ORDER BY pp.post_time
DESC
Vielen Dank an euch beiden.
Gruß Markus
Verfasst: 10.09.2007 20:52
von xTeN
Kann mir jemand sagen wie man mit dieser sql abfrage dann die posts ausgeben kann? also dass man jeweils immer sowas wie $news['post_time'] ausgeben kann und die nachricht so formatieren kann.
Verfasst: 10.09.2007 21:07
von gn#36
Schau dir die viewtopic.php an, da wird genau das gemacht

Wenn du $news['post_time'] ausgeben willst: [PHP:echo] oder KB:template_syntax KB:template_system
Eine etwas genauere Beschreibung deines Problems würde vielleicht auch eine etwas genauere Antwort ergeben...