Zum Inhalt springen

Forum Threads nach Datum der neuesten Antwort sortieren


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe ein Forum mit folgenden Tabellen:

forum_threads


####################################################
# ID # Titel # Message # Poster # CreateDate # Hits#
# # # # # # #
# # # # # # #
####################################################
[/PHP]

forum_antworten

[PHP]
######################################################
# ID # ThreadID# Message # Poster # CreateDate # Hits#
# # # # # # #
# # # # # # #
######################################################

Jetzt sollen die Threads bei der Ausgabe nach dem Datum der neuesten Antwort sortiert werden. Hat jemand eine Ahnung, wie ich das machen kann?

Gruß,

Andreas

Geschrieben

je nach DBMS (mysql? *rat*), ein JOIN auf forum_threads.ID und forum_antworten.ID und ein ORDER BY forum_antworten.CreateDate (neueste antwort, dann halt noch DESC, absteigend sortiert).

s'Amstel

Geschrieben

Hallo,

sorry hatte vergessen zu sagen dass es sich um MySQL handelt ;)

Also ich hab das mal ohne JOIN gemacht, aber bin der Lösung schon ziemlich nahe:


SELECT
a.ID, a.ThreadID, a.Poster, max(a.CreateDate) as foo, t.ID, t.Titel, t.Poster, t.CreateDate
FROM forum_antworten a, forum_threads t
WHERE a.ThreadID=t.ID
GROUP BY t.Titel
ORDER BY foo DESC
[/PHP]

Das listet mir die Threads sortiert nach der neuesten Antwort auf. Allerdings nur die Threads, für die schon eine Antwort existiert!

Wie bekomm ich jetzt die andren Threads mit deren Erstellungsdatum auch noch in die Sortierung?

Danke!

Gruß,

Andreas

Geschrieben

Hier hab ich dasselbe nochmal mit dem JOIN, allerdings hab ich noch immer keine Ahnung wie ich die Threads ohne Antworten da mit reinbekomme?


SELECT t.Titel, max( a.CreateDate ) AS Datum
FROM forum_antworten a
INNER JOIN forum_threads t ON t.ID = a.ThreadID
GROUP BY t.Titel
ORDER BY Datum DESC
[/PHP]

Geschrieben

SELECT t.Titel, IFNULL(max(a.CreateDate),t.CreateDate) AS Datum

FROM forum_threads AS t

LEFT JOIN forum_antworten AS a

ON a.ThreadID=t.ID 

GROUP BY t.ID

ORDER BY Datum DESC 

Geschrieben

Hi,

um Redundanz zu verhindern solltest du im Forum Thread lediglich den Titel des Threads speichern, den Rest kannst du im Antworten-Thread speichern.

Zum einen kann es ja sein, daß du z.B. den ersten post eines Themas löschen willst und dann ist gleich das ganze Thema gekilled (obwohl vielleicht einzelne Antworten recht gut waren).

So würdest du auch die Thread-Tabelle kleiner halten.

Nur so als Tipp.

Gruß,

DiHo

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...