/ PHP Realisierung einer aktuellen Threadanzeige im Board
Hans
- programmiertechnik
Hi Leute,
ihr kennt doch sicher die Anzeige von Threads in Boards, in denen Threads, auf die am aktuellsten geantwortet wurde, nach oben gereiht sind.
Wenn jedoch ein neuer Thread erstellt wurde, gibt es ja noch keine Antwort darauf (er würde also ganz hinten stehen).
Wie könnte ich ihn geschickt einordnen, dass er zwar oben steht, Threads mit neuesten Antworten jedoch auch oben angereiht werden?
danke,
Hans
Hi Hans,
gib doch jedem Thread (denke mal, du hast sie in ner Db) ein "Aktualisierungsdatum". Jedesmal, wenn geantwortet wird, wird dieses Datum auf die aktuelle Zeit gesetzt, ebenso, wenn das Thread erzeugt wird. Dann musst du dir nur noch alles nach Datum sortiert ausgeben lassen.
MFG
Philipp
Hallo Hans,
Wenn jedoch ein neuer Thread erstellt wurde, gibt es ja noch keine Antwort darauf (er würde also ganz hinten stehen).
Du solltest Dein Datenmodell überdenken. Trenne Dich von dem Konzept der »Antworten« (wenn Du schon ein Board verwendest) und denke Dir alles als
Nachrichten - und die erste Nachricht sollte dann genauso gespeichert
werden, wie der Rest der Nachrichten.
Vereinfachtes Beispiel:
Deine Tabelle für Topics hat die Felder topicid, title
Deine Tabelle für die Nachrichten hat die Felder messageid, topicid, message, message_date
Beim Anlegen eines Topics wird in die Topic-Tabelle der Topic eingetragen und in die Nachrichten-Tabelle die erste Nachricht. Beim Antworten auf einen Topic wird die Antwort in die Nachrichtentabelle geschrieben.
Klar, was ich meine?
Viele Grüße,
Christian
Hi,
alles klar, habe ich vertanden...
Wäre mein System da gegenüber denn mit Nachteilen verbunden?
Danke,
Hans
Hallo Hans,
Wäre mein System da gegenüber denn mit Nachteilen verbunden?
Nachdem ich Dein genaues System nicht kenne, sondern nur darauf schließen kann, dass es _nicht_ so ist, wie ich es beschrieben habe, kann ich Dir in der Hinsicht leider nichts sagen. Erläre doch mal Dein bisheriges Konzept - dann kann ich sicherlich etwas dazu sagen.
Viele Grüße,
Christian