MyBB.de Forum

Normale Version: [G] Unbekannte Spalte 'averagerating' in Tabelle mybb_threads
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
In meiner MyBB-Logdatei finde ich regelmäßig Einträge wie den folgenden:

<error>
<dateline>1219123972</dateline>
<script></script>
<line>0</line>
<type>20</type>
<friendly_type>MyBB SQL Error</friendly_type>
<message>SQL Error: 1054 - Unknown column 'averagerating' in 'order clause'
Query:
SELECT t.*, t.username AS threadusername, u.username
FROM mybb_threads t
LEFT JOIN mybb_users u ON (u.uid = t.uid)
WHERE t.fid='11' AND t.visible='1'
ORDER BY t.sticky DESC, averagerating desc , t.totalratings DESC
LIMIT 0, 20
</message>
</error>

Weiß jemand, wie dieser Fehler zustande kommt (lt. Google scheine ich nicht der einzige Betroffene zu sein), und wie man ihn abstellt? Wie kommt es überhaupt, dass hier gleich zwei Spalten (neben averagerating auch totalratings) aufgeführt sind, die es in der Tabelle mybb_threads überhaupt nicht gibt?
In MyBB 1.4 gibt es nur numratings und totalratings. Entweder sind veraltete Plugins oder Code-Änderungen eingebaut.
In forumdisplay.php finde ich u.a. folgenden Code:

switch($mybb->input['sortby'])
{
case "subject":
$sortfield = "subject";
break;
case "replies":
$sortfield = "replies";
break;
case "views":
$sortfield = "views";
break;
case "starter":
$sortfield = "username";
break;
case "rating":
$t = "";
$sortfield = "averagerating"; <----------------------
$sortfield2 = ", t.totalratings DESC";
break;
case "started":
$sortfield = "dateline";
break;
default:
$sortby = "lastpost";
$sortfield = "lastpost";
$mybb->input['sortby'] = "lastpost";
break;
}

Er stammt aus dem Originalpaket. Also kann es m. E. nicht ein Plugin oder eine Codeänderung sein.
Welchen DB-Treiber verwendest du? MySQL, MySQLi, PGSQL oder SQLite?
Ich verwende MyBB mit MySQL 5, also mit dem MySQLi-Treiber.
Ersetze die Datei forumdisplay.php bitte mal durch die angefügte und beobachte dann, ob der Fehler weiterhin auftritt.
Danke für deine Mühe. Aber jetzt geht gar nichts mehr:

<error>
<dateline>1219297785</dateline>
<script></script>
<line>0</line>
<type>20</type>
<friendly_type>MyBB SQL Error</friendly_type>
<message>SQL Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc
LIMIT 0, 20' at line 5
Query:
SELECT t.*, t.username AS threadusername, u.username
FROM mybb_threads t
LEFT JOIN mybb_users u ON (u.uid = t.uid)
WHERE t.fid='24' AND (t.visible='1' OR t.visible='0')
ORDER BY t.sticky DESC, t. desc
LIMIT 0, 20
</message>
</error>
Kannst du bitte nochmal die angefügte Datei testen?
Ich habe die Datei jetzt installiert. Da der Fehler nur sporadisch aufgetaucht ist (gestern zum Beispiel gar nicht, vorgestern dafür insgesamt fünf oder sechs Mal), warte ich jetzt mal ein/zwei Tage und gebe dir dann Bescheid.
Ich bekomme die Fehler leider immer noch!

<error>
<dateline>1219622893</dateline>
<script></script>
<line>0</line>
<type>20</type>
<friendly_type>MyBB SQL Error</friendly_type>
<message>SQL Error: 1054 - Unknown column 'averagerating' in 'order clause'
Query:
SELECT t.*, t.username AS threadusername, u.username
FROM mybb_threads t
LEFT JOIN mybb_users u ON (u.uid = t.uid)
WHERE t.fid='18' AND t.visible='1'
ORDER BY t.sticky DESC, averagerating asc , t.totalratings DESC
LIMIT 20, 20
</message>
</error>