News Forum in PHP auslesen

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.
Markus_83_nrw
Mitglied
Beiträge: 30
Registriert: 04.06.2006 16:32
Wohnort: Bonn

News Forum in PHP auslesen

Beitrag 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]
Zuletzt geändert von Markus_83_nrw am 07.09.2007 08:00, insgesamt 2-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Code: Alles auswählen

LIMIT 1
anhängen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Markus_83_nrw
Mitglied
Beiträge: 30
Registriert: 04.06.2006 16:32
Wohnort: Bonn

Beitrag von Markus_83_nrw »

Danke, werde ich heute Abend versuchen, bin gerade auf der Arbeit. :D

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]
Markus_83_nrw
Mitglied
Beiträge: 30
Registriert: 04.06.2006 16:32
Wohnort: Bonn

Beitrag von Markus_83_nrw »

Keiner ne Idee? :cry:

:D

Gruß Markus
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

order by pp.post_time desc
das hier machen:

Code: Alles auswählen

order by pp.post_time asc
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Markus_83_nrw
Mitglied
Beiträge: 30
Registriert: 04.06.2006 16:32
Wohnort: Bonn

Beitrag 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]
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Markus_83_nrw
Mitglied
Beiträge: 30
Registriert: 04.06.2006 16:32
Wohnort: Bonn

Beitrag 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
xTeN
Mitglied
Beiträge: 6
Registriert: 10.09.2007 20:50

Beitrag 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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“