"Letzte Antwort von..." ausgeben

Hallo,

ich habe ein einfaches Forum.

Dieses besteht u. a. aus den zwei Tabellen:
Threads (mit den Spalten ID, Titel, Username, Datum, Zeit, Mitteilung, Klicks, Antworten und BoardID) und
Replys (mit den Spalten, ID, Username, Datum, Zeit, Mitteilung, BoardID und ThreadID)

Mit einer Schleife lasse ich mir wie ihr sicherlich sehen könnt die verschiedenen Themen, inkl. Titel, Autor und Erstelldatum und -zeit ausgeben.

Nun möchte ich, zusätzlich auch noch “Letzte Antwort von… am…” ausgeben. Leider weiß ich nicht, wie man dies anstellen könnte und ihr würdet mir sehr helfen, wenn ihr mir die SQL Anweisung inkl. der Schleife schreiben könntet.

Danke!!

Ach ja. Natürlich möchte ich die Themen dann nach “letzte Antwort nach oben” sortieren, nicht mehr wie bisher nach dem Erstelldatum bzw. nach der ID.

Hier ist die Schleife:

<?php

...

$query="Select * from forum_threads where thread_boardid='".$_GET['boardid']."' order by thread_id DESC";
$result=mysql_query($query);

...

while($row = mysql_fetch_array($result)) {
echo"<tr><td ><a href=\"replys.php?boardid=".$_GET['boardid']."&threadid=".$row['thread_id']."\">".$row['thread_title']."</a></td>";
echo"<td >".$row['thread_date']."<br>".$row['thread_time']." Uhr</td>";
echo"<td ><div align=\"center\">".$row['thread_username']."</div></td>";
echo"<td ><div align=\"center\">".$row['thread_clicks']."</div></td>";
echo"<td ><div align=\"center\">".$row['thread_replys']."</div></td></tr>";
}

...

?>

Mal noch ne Idee am Rande: Ist es vielleicht sinvoll, eine Spalte für diese Informationen (letzer Autor, Datum, Uhrzeit) in die Tabelle Threads einzufügen? Dieser müsste dann bei jedem neuen Post “überschrieben” werden. Geht das vielleicht einfacher? Wenn ja wie?

Hi,

ich muss gestehen, ich hab’s nicht so mit SQL, deshalb wuerde ich dir innerhalb der Schleife einfach zu einer weiteren Abfrage raten. Etwa so:

"Select Datum from forum_replys where thread_id='".$row['ID']."' order by Datum DESC LIMIT 1"

Allerdings, und ich geb zu, dass ich mich da auch schwer tue, waere es vermutlich besser die beiden Tabellen etwas umzustrukturieren, solche „Hilfsspalten“ (Antworten und das BoardID in Replys) rauszuschmeissen und das ganze sauber mit JOIN-Abfragen zu machen.

Ich verweise auf: viewtopic.php?f=10&t=9110 :ps:

Abfragen in Schleifen sind für die Performance selten günstig.

Sinnvoll löst man sowas mit einem JOIN (<- Stichwort zum informieren)

Oder einfach die Informationen des Letzten Beitragerstellers samt Datum mit in die Threadtabelle, so wie es zum Beispiel phpBB3 macht. :slight_smile:

Edit: um die Verwendung von JOIN kommt man in einer Forensoftware allerdings selten drumrum.