From 04916f4377de732a819c9298a22c61e2372184a4 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Sat, 15 Dec 2001 16:15:45 +0000 Subject: [PATCH] Sped up searching for posts from a specific user a lot git-svn-id: file:///svn/phpbb/trunk@1586 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/search.php | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/phpBB/search.php b/phpBB/search.php index 40f35834c1..064ed3f4b4 100644 --- a/phpBB/search.php +++ b/phpBB/search.php @@ -287,12 +287,33 @@ else if( $query_keywords != "" || $query_author != "" || $search_id ) else { $query_author = str_replace("*", "%", trim($query_author)); + + $sql = "SELECT user_id + FROM ".USERS_TABLE." + WHERE username LIKE '$query_author'"; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't obtain list of matching users (searching for: $query_author)", "", __LINE__, __FILE__, $sql); + } + if( $db->sql_numrows($result) == 0 ) + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } + + while( $row = $db->sql_fetchrow($result) ) + { + if( $matching_userids != "" ) + { + $matching_userids .= ", "; + } + $matching_userids .= $row['user_id']; + } - $sql = "SELECT p.post_id - FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u - WHERE u.username LIKE '$query_author' - AND p.poster_id = u.user_id - ORDER BY p.post_time DESC"; + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE poster_id IN ($matching_userids) + ORDER BY post_time DESC"; } $result = $db->sql_query($sql); if( !$result )