Seite 2 von 2

Verfasst: 02.03.2007 19:10
von rox²³
Funktioniert auch nicht der inhalt der ausgelesen wird bleibt gleich bis auf das was hinter MAX in den klammern steht.

Verfasst: 02.03.2007 19:53
von rox²³
bzw wenn ich group by weg lasse funktioniert es bis auf die tatsache das sich das Array welches ich auslese bei nem Topic mit hundert oder gar tausend antworten enorm groß wird und auf die Performance sich auswirkt.

Ich könnte das array beschneiden aber trotsdem ließt er ja erstmal alles aus der DB.

Verfasst: 02.03.2007 19:55
von Miriam
Achso ... topid ist die Post-ID und id ist die Topic-ID

Code: Alles auswählen

SELECT MAX(topid), id FROM thread_tabelle GROUP BY id ORDER BY ID ASC;
//Edit: Du kannst GROUP BY nicht weglassen, weil MAX() eine Aggregatfunktion ist.

Verfasst: 02.03.2007 20:06
von rox²³
Miriam hat geschrieben:Achso ... topid ist die Post-ID und id ist die Topic-ID
topid ist die id von der Tabelle Topic die die überschriften bzw. das betreff der Beiträge enthällt. Id ist die autoincrement id von threads also den inhalt der beiträge. Beim erstellen eines neuen Beitrags wird ein Eintrag in Topics gemacht und ein eintrag in threads in threads befindet sich dann die id von Topics also topid um wiederum einen bezug zum Titel zu haben.
Miriam hat geschrieben:

Code: Alles auswählen

SELECT MAX(topid), id FROM thread_tabelle GROUP BY id ORDER BY ID ASC;
Bei dieser methode hab ich wieder das problem das alle threads ausgelesen werden.

Verfasst: 02.03.2007 20:25
von Miriam
Dann ist doch das hier richtig.
Es werden zu allen IDs die maximale ID des Postings angezeigt.

Verfasst: 02.03.2007 20:54
von rox²³
Ja aber ich brauche ja den Inhalt des Threads user text posttime etc.

Wenn ich jetzt das Query erweitere nach meinen bedürfnissen:

Code: Alles auswählen

SELECT MAX(id), id, forid, subfor, topid, user, posttime, text, date_format(posttime, '%d.%m.%y - %H:%i') AS form_posttime FROM ".$praefix."threads WHERE subfor='".$subforid."' GROUP BY topid
dann erhalte ich wieder die alten threads und nicht die neusten

Verfasst: 02.03.2007 22:25
von Miriam
Versuche:

Code: Alles auswählen

$sql = "SELECT MAX(id), forid, subfor, topid, user, text, date_format(posttime, '%d.%m.%y - %H:%i') AS form_posttime FROM ".$praefix."threads WHERE subfor='".$subforid."' GROUP BY topid";

Verfasst: 02.03.2007 23:59
von rox²³
Gleiches Problem wieder nur die ersten Threads werden angezeigt :-?

Verfasst: 03.03.2007 09:12
von Miriam
Wir sollten erst einmal die Terminiologie klären:
  • thread bedeutet topic/Thema
    post bedeutet posting /Beitrag.
Es sollte also nur der letzte Beitrag mit der ID des dazugehörenden Themas angezeigt werden. (Zumindest war das meine Absicht mit der SQL Query.)

Verfasst: 03.03.2007 17:28
von rox²³
Miriam hat geschrieben:Wir sollten erst einmal die Terminiologie klären:
  • thread bedeutet topic/Thema
    post bedeutet posting /Beitrag.
nicht ganz
Topic bedeutet Thema = Überschrift
Thread bedeutet Beitrag = Posting Inhalt
Laut Datenbankstrucktur von mir
Miriam hat geschrieben: Es sollte also nur der letzte Beitrag mit der ID des dazugehörenden Themas angezeigt werden. (Zumindest war das meine Absicht mit der SQL Query.)
Es soll der letzte Beitrag angezeigt werden davon aber nur Postdatum / User / Überschrift