Hallo!
Ich bin gerade am Verzweifeln weil ich mein selbst programmiertes Forum auf einem Server installieren muß auf dem die prähistorische MySql-Version 4.024 läuft. Folgendes läuft zwar super unter MySQL 5.xx aber eben nicht unter 4.024:
SELECT isgweb_threads.id, title, (SELECT MAX(creationtime) FROM isgweb_threads AS trs WHERE trs.parentid=isgweb_threads.id) AS lastaction, (SELECT COUNT(*) FROM isgweb_threads AS trs2 WHERE trs2.parentid=isgweb_threads.id) -1 AS answers, isgweb_user.username, forumid FROM isgweb_threads, isgweb_user WHERE parentid=isgweb_threads.id AND isgweb_user.id=isgweb_threads.userid ORDER BY lastaction DESC LIMIT 0, 10
Ok, ist sicher nicht supereffizient programmiert (bin einfach kein DB-Profi) aber klappt unter aktuellen Versionen. Vermutlich liegts an den Selects in Klammer. Das kann die alte Version einfach nicht.
Daher habe ich mir folgendes überlegt:
SELECT isgweb_threads.id, title, count(*) -1 AS answers, MAX(creationtime) AS lastaction, username, isgweb_threads.forumid AS forumid FROM isgweb_threads, isgweb_user WHERE isgweb_threads.userid = isgweb_user.id GROUP BY parentid ORDER BY MAX(creationtime) DESC LIMIT 0, 10
(war schon ziemlich stolz auf mich, das als Nicht-DB-Profi überhaupt hingekriegt zu haben *g*)
Das sieht schon etwas schlanker aus und da sind keine Sub-Queries mehr drin. Naja, geht trotzdem nicht. "Invalid use of group-function".
Langsam bin ich am verzweifeln. Das Ganze sollte mir einfach nur die neuesten 10 Threads anzeigen, mehr nicht.
Die Tabelle ist ganz einfach aufgebaut:
id int
title varchar
content text
userid int
forumid int
parentid int
creationtime int
Anzumerken wäre noch, daß der jeweils erste Beitrag eines Threads parentid=id gesetzt hat. Das vereinfacht einfach die Anzeige des Threads selbst.
Über Hilfe von Leuten die sich mit DBs besser auskennen als ich wäre ich sehr glücklich
Irgendwie muß es ja gehen, denn es gab auch zu Zeiten von MySQL 4.024 bereits Foren
viele Grüsse und danke im Voraus
Thomas.
Ich bin gerade am Verzweifeln weil ich mein selbst programmiertes Forum auf einem Server installieren muß auf dem die prähistorische MySql-Version 4.024 läuft. Folgendes läuft zwar super unter MySQL 5.xx aber eben nicht unter 4.024:
SELECT isgweb_threads.id, title, (SELECT MAX(creationtime) FROM isgweb_threads AS trs WHERE trs.parentid=isgweb_threads.id) AS lastaction, (SELECT COUNT(*) FROM isgweb_threads AS trs2 WHERE trs2.parentid=isgweb_threads.id) -1 AS answers, isgweb_user.username, forumid FROM isgweb_threads, isgweb_user WHERE parentid=isgweb_threads.id AND isgweb_user.id=isgweb_threads.userid ORDER BY lastaction DESC LIMIT 0, 10
Ok, ist sicher nicht supereffizient programmiert (bin einfach kein DB-Profi) aber klappt unter aktuellen Versionen. Vermutlich liegts an den Selects in Klammer. Das kann die alte Version einfach nicht.
Daher habe ich mir folgendes überlegt:
SELECT isgweb_threads.id, title, count(*) -1 AS answers, MAX(creationtime) AS lastaction, username, isgweb_threads.forumid AS forumid FROM isgweb_threads, isgweb_user WHERE isgweb_threads.userid = isgweb_user.id GROUP BY parentid ORDER BY MAX(creationtime) DESC LIMIT 0, 10
(war schon ziemlich stolz auf mich, das als Nicht-DB-Profi überhaupt hingekriegt zu haben *g*)
Das sieht schon etwas schlanker aus und da sind keine Sub-Queries mehr drin. Naja, geht trotzdem nicht. "Invalid use of group-function".
Langsam bin ich am verzweifeln. Das Ganze sollte mir einfach nur die neuesten 10 Threads anzeigen, mehr nicht.
Die Tabelle ist ganz einfach aufgebaut:
id int
title varchar
content text
userid int
forumid int
parentid int
creationtime int
Anzumerken wäre noch, daß der jeweils erste Beitrag eines Threads parentid=id gesetzt hat. Das vereinfacht einfach die Anzeige des Threads selbst.
Über Hilfe von Leuten die sich mit DBs besser auskennen als ich wäre ich sehr glücklich

Irgendwie muß es ja gehen, denn es gab auch zu Zeiten von MySQL 4.024 bereits Foren

viele Grüsse und danke im Voraus
Thomas.