Select der Threads sortiert nach letztem Eintrag?
am 21.02.2007 17:08:09 von keksi35
Hallo NG,
ich bin grade dabei ein kleines Forum für einen Kunden zu schreiben
und habe hierfür eine Tabelle angelegt:
-id
-threadid (bei antworten auf Threads erscheint hier die Original-
Thread-Id)
-datum
-username
-email
-userip
-subject
-message
-views
-public
-close
Nun alles ist soweit in Ordnung, habe aber jetzt eines bemerkt: Wie
kann ich denn jetzt die Threads (sind ja nur die Titel mit den Views
und der Anzeige wer als letztes wann gepostet hat) nach dem letzten
Post mit einem SQL-Befehl sortieren? Oder muss ich gar vielleicht mit
Temporary-Tables erst eine mit den Angaben erstellen und dort dann die
entsprechenden Threads sortiert nach letztem Post ausgeben?
Danke,
Stefan
Re: Select der Threads sortiert nach letztem Eintrag?
am 22.02.2007 22:09:27 von Dominik Echterbruch
Stefan J. schrieb:
>
> ich bin grade dabei ein kleines Forum für einen Kunden zu schreiben
> und habe hierfür eine Tabelle angelegt:
[Wortliste]
Mit dieser Tabellendefinition kann hier niemand ernsthaft etwas
anfangen. Bitte poste das Ergebnis von:
SHOW CREATE TABLE threads_oder_wie_auch_immer_die_Tabelle_heißt \G
> Nun alles ist soweit in Ordnung, habe aber jetzt eines bemerkt: Wie
> kann ich denn jetzt die Threads (sind ja nur die Titel mit den Views
> und der Anzeige wer als letztes wann gepostet hat) nach dem letzten
> Post mit einem SQL-Befehl sortieren? Oder muss ich gar vielleicht mit
> Temporary-Tables erst eine mit den Angaben erstellen und dort dann die
> entsprechenden Threads sortiert nach letztem Post ausgeben?
Von diesem Absatz verstehe ich zwar die einzelnen Worte, aber nicht
ihren Sinn und Zusammenhang. Was für Titel, Views usw.? Hast du dazu
vielleicht mal eine Abfrage, um zu verdeutlichen, was du bisher getan
hast? Und erläutere bitte mal, was genau du von MySQL erwartest. Wie
soll das Ergebnis aussehen?
Grüße,
Dominik
Re: Select der Threads sortiert nach letztem Eintrag?
am 25.02.2007 02:10:21 von keksi35
On 22 Feb., 22:09, Dominik Echterbruch wrote:
> Stefan J. schrieb:
>
> > ich bin grade dabei ein kleines Forum für einen Kunden zu schreiben
> > und habe hierfür eine Tabelle angelegt:
>
> [Wortliste]
>
> Mit dieser Tabellendefinition kann hier niemand ernsthaft etwas
> anfangen. Bitte poste das Ergebnis von:
> SHOW CREATE TABLE threads_oder_wie_auch_immer_die_Tabelle_heißt \G
>
> > Nun alles ist soweit in Ordnung, habe aber jetzt eines bemerkt: Wie
> > kann ich denn jetzt die Threads (sind ja nur die Titel mit den Views
> > und der Anzeige wer als letztes wann gepostet hat) nach dem letzten
> > Post mit einem SQL-Befehl sortieren? Oder muss ich gar vielleicht mit
> > Temporary-Tables erst eine mit den Angaben erstellen und dort dann die
> > entsprechenden Threads sortiert nach letztem Post ausgeben?
>
> Von diesem Absatz verstehe ich zwar die einzelnen Worte, aber nicht
> ihren Sinn und Zusammenhang. Was für Titel, Views usw.? Hast du dazu
> vielleicht mal eine Abfrage, um zu verdeutlichen, was du bisher getan
> hast? Und erläutere bitte mal, was genau du von MySQL erwartest. Wie
> soll das Ergebnis aussehen?
>
> Grüße,
> Dominik
Hi,
sorry, ich hatte am nächsten Tag die Lösung (stand auf der Leitung).
Kurz um, es ging um eine Sortierung. Ein Forum hat ja Threads und in
den Threads sind ja nun auch Erstpostings wie Antworten darauf. Die
Threadansicht sollte allerdings nach dem letztem Beitrag sortiert
werden (ergo sollte auch das Datum der letzten Antwort auf einem
Thread zur Sortierung hinzugezogen werden).
Ich habe nun eigentlich 2 Felder hinzugefügt. Einmal lpdate (Lastpost-
Date) und lpuser (LastPost-User), die beim Thread eröffnen erstmalig
ausgefüllt wird und bei jeder Antwort auf einem Thread aktualisiert
wird. So kann ich schlicht nach
SELECT * FROM forum WHERE tid IS NULL AND public=3D1 ORDER BY lpdate
DESC
nur die Threads (Beitrags-Starttitel) nach dem Datum (ebenso bei
Antworten) korrekt sortiert ausgeben.
Stefan