aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/search.php
diff options
context:
space:
mode:
authorBart van Bragt <bartvb@users.sourceforge.net>2001-12-15 16:15:45 +0000
committerBart van Bragt <bartvb@users.sourceforge.net>2001-12-15 16:15:45 +0000
commit04916f4377de732a819c9298a22c61e2372184a4 (patch)
tree9cb60d525a82f9069c1997e6499a33872bf55d6c /phpBB/search.php
parent3d46cdb81430fa07329231c587c5b1e297c154b5 (diff)
downloadforums-04916f4377de732a819c9298a22c61e2372184a4.tar
forums-04916f4377de732a819c9298a22c61e2372184a4.tar.gz
forums-04916f4377de732a819c9298a22c61e2372184a4.tar.bz2
forums-04916f4377de732a819c9298a22c61e2372184a4.tar.xz
forums-04916f4377de732a819c9298a22c61e2372184a4.zip
Sped up searching for posts from a specific user a lot
git-svn-id: file:///svn/phpbb/trunk@1586 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/search.php')
-rw-r--r--phpBB/search.php31
1 files 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 )