Seite 6 von 16

Verfasst: 31.12.2002 11:25
von Candy
Hab sie hier mal hochgeladen search.php

Grüße Candy

Verfasst: 31.12.2002 14:23
von saerdnaer
okay dann wollen wir mal....
search.php:
suchen:

Code: Alles auswählen

$sort_by_types = array($lang['Sort_Time'], $lang['Sort_Post_Subject'], [...]
danach einfügen:

Code: Alles auswählen

$sort_by_types[] = 'Bewertung'; // ADDED BY order by rating
suchen:

Code: Alles auswählen

        //
        // Look up data ...
        //
        if ( $search_results != '' )
        {
danach einfügen:

Code: Alles auswählen

          // BEGIN order by rating
                if ( $sort_by == 8 )
                {
                        $toh_sql1 = ', AVG(rating) AS rating';
                        $toh_sql2 = 'LEFT JOIN ' . RATE_TABLE . ' r ON r.topic_id = t.topic_id ';
                        $toh_sql3 = ' GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
                }
                else
                {
                        $toh_sql1 = '';
                        $toh_sql2 = '';
                        $toh_sql3 = '';
                }
                // END order by rating
suchen:

Code: Alles auswählen

                        $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
                                FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
                                WHERE p.post_id IN ($search_results)
                                        AND pt.post_id = p.post_id
                                        AND f.forum_id = p.forum_id
                                        AND p.topic_id = t.topic_id
                                        AND p.poster_id = u.user_id";
im gefunden suchen:

Code: Alles auswählen

u.user_sig_bbcode_uid
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql1
im oben gefunden suchen:

Code: Alles auswählen

POSTS_TEXT_TABLE . " pt
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql2
nach dem oben gefundenem einfügen:

Code: Alles auswählen

// ADDED  $toh_sql1 AND  $toh_sql2 BY order by rating
suchen:

Code: Alles auswählen

                        $sql = "SELECT t.*, f.forum_id, f.forum_name, 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 
                                FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
                                WHERE t.topic_id IN ($search_results)
                                        AND t.topic_poster = u.user_id
                                        AND f.forum_id = t.forum_id
                                        AND p.post_id = t.topic_first_post_id
                                        AND p2.post_id = t.topic_last_post_id
                                        AND u2.user_id = p2.poster_id";
im oben gefundenem suchen:

Code: Alles auswählen

p2.post_time
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql1
im oben gefundenem suchen:

Code: Alles auswählen

USERS_TABLE . " u2
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql2
nach dem oben gefundenem einfügen:

Code: Alles auswählen

// ADDED  $toh_sql1 AND  $toh_sql2 BY order by rating
suchen:

Code: Alles auswählen

$sql .= " ORDER BY ";
ersetzen durch:

Code: Alles auswählen

$sql .= $toh_sql3 . " ORDER BY "; // ADDED  . $toh_sql3 BY order by rating
suchen:

Code: Alles auswählen

                        case 7:
                                $sql .= 't.topic_replies';
                                break
danach einfügen:

Code: Alles auswählen

                        // BEGIN order by rating
                        case 8:
                                $sql .= 'IF(rating = NULL, 0, rating)';
                                break;
                        // END order by rating
das wärs...
sollte funktionieren ;-)

ah

Verfasst: 08.01.2003 15:51
von JLoop©
Hi,
ich habe nun in mein Board auch deinen Mod für die Sortierung nach Bewertung im Sort Search Results Mod eingebaut aber ich irgendwo scheint da noch ein problem zu sein denn ich bekomme diese Fehlermeldung wenn ich nach Bewertung sortieren möchte:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id, u.user_id, u2.user_idIF(rating = NULL, 0, rating) DESC LIMI' at line 7

SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid , AVG(rating) AS rating FROM phpbb_forums f, phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_posts_text pt LEFT JOIN phpbb_rate_results r ON r.topic_id = t.topic_id WHERE p.post_id IN (109, 114, 112, 148, 115) AND pt.post_id = p.post_id AND f.forum_id = p.forum_id AND p.topic_id = t.topic_id AND p.poster_id = u.user_id ORDER BY GROUP BY t.topic_id, u.user_id, u2.user_idIF(rating = NULL, 0, rating) DESC LIMIT 0, 15

Line : 794
File : search.php
Woran kann das liegen?

Grüße JLoop

Verfasst: 08.01.2003 16:51
von saerdnaer
ich hab den obrigen post mal ediert....

ah

Verfasst: 08.01.2003 19:05
von JLoop©
Was genau hast du denn verändert?Weil ich bekomme immernoch ne fehlermeldung :(

Grüße JLoop

Verfasst: 08.01.2003 19:08
von saerdnaer
was für einen bekommst du denn?

Verfasst: 08.01.2003 19:25
von JLoop©
Eine ähnliche wie die, die ich ein Posting höher gepostet habe:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'BY t.topic_id ORDER BY IF(rating = NULL, 0, rating) DESC LIMIT 0, 50' at line 8

SELECT t.*, f.forum_id, f.forum_name, 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 FROM phpbb_topics t, phpbb_forums f, phpbb_users u, phpbb_posts p, phpbb_posts p2, phpbb_users u2 LEFT JOIN phpbb_rate_results r ON r.topic_id = t.topic_id WHERE t.topic_id IN (87, 89, 91, 113) AND t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_idGROUP BY t.topic_id ORDER BY IF(rating = NULL, 0, rating) DESC LIMIT 0, 50

Line : 797
File : search.php
Grüße JLoop

Verfasst: 09.01.2003 15:55
von saerdnaer
dacht ich mir doch....
suche:

Code: Alles auswählen

$toh_sql3 = 'GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
ersetzen druch

Code: Alles auswählen

$toh_sql3 = ' GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
ah

Verfasst: 19.01.2003 22:48
von JLoop©
thx funzt jetzt einwandfrei aber mir ist da noch etwas aufgefallen was auch Candy schon gefragt hatte wonach werden die Posts mit der Bewertung 0.00 sortiert wenn ich z.b. nach Bewertung "Absteigend" sortiere?Absteigend nach Eröffnungsdatum oder werden die dann nicht sortiert?Hoffe du verstehst was ich meine ist etwas schwer zu erklären :)

Grüße JLoop

BTW: Sorry das ich solange net geantwortet habe aber ich hatte einige robs mit meinem Board :)

wo finde ich denn saerdnaers "Topics Order Hack"

Verfasst: 20.01.2003 12:47
von MiXa
hallo,

wo finde ich denn saerdnaers "Topics Order Hack"

(ich will ihn in ein bereits bestehendes phpbb 2.0.3 einzubauen)

ich kann wirklich nichts finden - suche schon länger :roll:

danke