Seite 4 von 16

Verfasst: 23.12.2002 15:41
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.

Verfasst: 23.12.2002 16:42
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

Verfasst: 24.12.2002 11:47
von Acid
Irgendwie reden wir am Query vorbei ..poste nochma die genaue Fehlermeldung und ´n Link zur aktuellst genutzten viewforum.php . :oops:

Verfasst: 24.12.2002 14:09
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

Verfasst: 24.12.2002 16:31
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

Verfasst: 24.12.2002 16:57
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

Verfasst: 24.12.2002 17:15
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

Verfasst: 25.12.2002 16:31
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?

Verfasst: 25.12.2002 16:35
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

Verfasst: 25.12.2002 19:59
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