Seite 8 von 16

Verfasst: 30.01.2003 23:11
von JLoop©
saerdnaer hat geschrieben:@JLoop©: für die suche musst fu folgendes:

Code: Alles auswählen

$sql .= 'IF(rating = NULL, 0, rating)';
durch folgendes

Code: Alles auswählen

$sql .= 'IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
ersetzen.
und für die topic sortierung folgendes:

Code: Alles auswählen

$order_by = "IF(rating = NULL, 0, rating) $sort_order";
durch folgendes

Code: Alles auswählen

$order_by = "IF(rating = NULL, 0, rating) $sort_order, t.topic_last_post_id $sort_order";
ersetzen
Ich nehme an das erste ist für den Sort Search Results Mod oder?Weil das scheint nicht zu funzen ich bekomme diese fehlermeldung wenn ich da nach Bewertung sortiere:

Code: Alles auswählen

Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id IF(rating = NULL, 0, rating) , t.topic_last_post_id DESC LIM' 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_id ORDER BY GROUP BY t.topic_id IF(rating = NULL, 0, rating) , t.topic_last_post_id DESC LIMIT 0, 50

Line : 794
File : search.php
Ausserdem passt da die sortierung der 0er posts irgendwie net da ich sie in der viewforum.php nach standard sortieren lassen wollte (das wäre dann t.topic_last_post_id) aber in der search.php ist standard ja je nachdem obs als Themen oder Beiträge angezeigt wird:

Code: Alles auswählen

default:
                                $sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
                                break;
Kann man das irgendwie hinbekommen das es dort auch nach standard sortiert wird?

Ich habe es schon so probiert das ich des:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
dadurch ersetze:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
aber das gibt nur nen parse error :(

Grüße JLoop

Verfasst: 31.01.2003 19:48
von saerdnaer
zeig mit mal den quellcode der search.php als link...

ah

Verfasst: 31.01.2003 21:47
von JLoop©
search.php

Grüße JLoop

Verfasst: 01.02.2003 14:26
von saerdnaer
achso...
suchen:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
durch

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_dir . ', t.topic_last_post_id';
ersetzen durch:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
durch

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_dir . ', ' . ( ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time' );
ah

Verfasst: 10.02.2003 17:02
von JLoop©
thx aber nun bekomme ich wieder diese fehlermeldung:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id IF(rating = NULL, 0, rating) DESC, p2.post_time DESC LIMIT 0' 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, 88, 92, 93, 115, 117, 118) 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 ORDER BY GROUP BY t.topic_id IF(rating = NULL, 0, rating) DESC, p2.post_time DESC LIMIT 0, 50

Line : 794
File : board/search.php
Hier nochmal meine search.php: search.php

Grüße JLoop

Verfasst: 10.02.2003 18:50
von saerdnaer
suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah

Verfasst: 10.02.2003 19:03
von saerdnaer
suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah

Verfasst: 10.02.2003 19:23
von saerdnaer
suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah

Verfasst: 11.02.2003 09:39
von JLoop©
Hi,
das scheint net zu funzen denn ich bekomme jetzt einen parse error:
Parse error: parse error in board/search.php on line 703
Das wäre diese Zeile:

Code: Alles auswählen

}
        else
        {
                if ( intval($search_id) )
Hier die aktuelle datei: search.php

Grüße JLoop

Verfasst: 11.02.2003 15:40
von saerdnaer
da hast du irgendwie noch was eingefügt...
suchen und löschen:

Code: Alles auswählen

        else
        {
                if ( intval($search_id) )
                {
                        $sql = "SELECT search_array
                                FROM " . SEARCH_TABLE . "
                 TO " . SEARCH_TABLE . " (search_id, session_id, search_array)
                                VALUES($search_id, '" . $userdata['session_id'] . "', '" . str_replace("\'", "''", $result_array) . "')";
                        if ( !($result = $db->sql_query($sql)) )
                        {
                                message_die(GENERAL_ERROR, 'Could not insert search results', '', __LINE__, __FILE__, $sql);
                        }
                }
        }
ACHTUNG: Auf die klammern {} aufpassen!!!

ah