Saerdnaers Topics Order Hack - Nach Bewertung sortieren?

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

..füge ma bei..
//
// All GLOBAL announcement data, this keeps GLOBAL announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2
..nach u2 noch $toh_sql2 an.

k/A ob´s was bringt, aber das $order_by in dem Query verlangt ja (durch rating) die Angabe der Rating-Tabelle.
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Habs gemacht aber die fehlermeldung bleibt :-? Irgendwie scheint der fehler im query zu sein

Siehe fehlermeldung:
SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username, pt.post_text FROM phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_users u2, phpbb_posts_text pt WHERE t.forum_id = 1 AND t.topic_poster = u.user_id AND p.post_id = t.topic_last_post_id AND p.post_id = pt.post_id AND p.poster_id = u2.user_id AND t.topic_type = 2 ORDER BY rating DESC
Müsste es net so sein?!
SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username, pt.post_text FROM phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_users u2, phpbb_rate_results r, phpbb_posts_text pt WHERE t.forum_id = 1 AND t.topic_poster = u.user_id AND p.post_id = t.topic_last_post_id AND p.post_id = pt.post_id AND p.poster_id = u2.user_id AND t.topic_type = 2 ORDER BY rating DESC
Grüße JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Irgendwie reden wir am Query vorbei ..poste nochma die genaue Fehlermeldung und ´n Link zur aktuellst genutzten viewforum.php . :oops:
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

:D

Die Fehlermeldung:
Couldn't obtain topic information

DEBUG MODE

SQL Error : 1054 Unknown column 'rating' in 'order clause'

SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username FROM phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_users u2 WHERE t.topic_poster = u.user_id AND p.post_id = t.topic_last_post_id AND p.poster_id = u2.user_id AND t.topic_type = 3 ORDER BY rating DESC

Line : 484
File : /viewforum.php
und hier nochmal die aktuelle: viewforum.php

Frohes Fest,
JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ach jetzt hab ich den fehler suche nach

Code: Alles auswählen

//
// All GLOBAL announcement data, this keeps GLOBAL announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username
   FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2
   WHERE t.topic_poster = u.user_id
      AND p.post_id = t.topic_last_post_id
      AND p.poster_id = u2.user_id
      AND t.topic_type = " . POST_GLOBAL_ANNOUNCE . "
   ORDER BY $order_by ";
darin suchen:

Code: Alles auswählen

p.post_username
danach einfügen:

Code: Alles auswählen

$toh_sql1
darin suchen:

Code: Alles auswählen

" . USERS_TABLE . " u2
danach einfügen:

Code: Alles auswählen

$toh_sql2
darin suchen:

Code: Alles auswählen

      AND t.topic_type = " . POST_GLOBAL_ANNOUNCE . "
danach einfügen

Code: Alles auswählen

$toh_sql3
suchen:

Code: Alles auswählen

//
// All announcement data, this keeps announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username, pt.post_text
        FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
        WHERE t.forum_id = $forum_id
                AND t.topic_poster = u.user_id
                AND p.post_id = t.topic_last_post_id
                AND p.post_id = pt.post_id
                AND p.poster_id = u2.user_id
                AND t.topic_type = " . POST_ANNOUNCE . "
        ORDER BY $order_by ";
darin suchen:

Code: Alles auswählen

pt.post_text
danach einfügen:

Code: Alles auswählen

$toh_sql1
darin suchen:

Code: Alles auswählen

" . POSTS_TEXT_TABLE . " pt
danach einfügen:

Code: Alles auswählen

$toh_sql2
darin suchen:

Code: Alles auswählen

      AND t.topic_type = " . POST_ANNOUNCE . "
danach einfügen

Code: Alles auswählen

$toh_sql3
und immer schön ein leer zeichen vor / nach den eingefügten variablen machen!!!

ah
Zuletzt geändert von saerdnaer am 01.05.2003 13:29, insgesamt 1-mal geändert.
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

thx nun sortiert es zwar nach bewertung aber alle anderen Topics ( für die noch net gewertet wurde ) werden garnet mehr angezeigt :o

Grüße JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ersetze folgendes

Code: Alles auswählen

$toh_sql2 = ', ' . RATE_TABLE . ' r';
$toh_sql3 = 'AND r.topic_id = t.topic_id GROUP BY t.topic_id, u.user_id, u2.user_id'; 
durch folgendes:

Code: Alles auswählen

$toh_sql2 = 'LEFT JOIN ' . RATE_TABLE . ' r ON r.topic_id = t.topic_id ';
$toh_sql3 = 'GROUP BY t.topic_id, u.user_id, u2.user_id'; 
ah
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Scheint nicht zu gehen jetzt bekomme ich wieder ne fehlermeldung :o
Could not obtain topic information

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'ON r.topic_id = t.topic_id , phpbb_posts_text pt WHERE t.forum_id = 1 ' at line 2

SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, AVG(rating) AS rating, pt.post_text FROM phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_posts p2, phpbb_users u2LEFT JOIN phpbb_rate_results r ON r.topic_id = t.topic_id , phpbb_posts_text pt WHERE t.forum_id = 1 AND t.topic_poster = u.user_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND p2.post_id = pt.post_id AND u2.user_id = p2.poster_id AND t.topic_type <> 2 AND t.topic_type <> 3 GROUP BY t.topic_id, u.user_id, u2.user_id ORDER BY t.topic_type DESC, rating DESC LIMIT 0, 50

Line : 553
File : viewforum.php
Grüße JLoop

BTW: Mal ne frage was genau bewirkt das AVG(rating) AS rating ?Steht AVG für Average?
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
kontors

Beitrag von kontors »

Hi,
ich wäre auch an dieser sortierungsmöglichkeit interessiert aber ich steig bei den ganzen Beiträgen nicht mehr durch :( Könnte jemand das ganze mal zusammenfassen?

Gruß kontors
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

@jloop: ich sagte doch vor und nach $toh_sql immer ein leerzeichen lassen!!!
die AVG funktion von mysql rechnet einfach den durchschnitt aus...

@kontors: wenns bei jloop funktioniert poste ich das ganze alles in einem beitrag zusammengefasst...

ah
Antworten

Zurück zu „phpBB 2.0: Mod Support“