aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_posting.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/functions_posting.php')
-rw-r--r--phpBB/includes/functions_posting.php31
1 files changed, 22 insertions, 9 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 020d437b14..67aedc2f25 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -113,20 +113,33 @@ function update_post_information($type, $ids, $return_update_sql = false)
$update_sql = $empty_forums = $not_empty_forums = array();
+ if ($type != 'topic')
+ {
+ $topic_join = ', ' . TOPICS_TABLE . ' t';
+ $topic_condition = 'AND t.topic_id = p.topic_id AND t.topic_approved = 1';
+ }
+ else
+ {
+ $topic_join = '';
+ $topic_condition = '';
+ }
+
if (sizeof($ids) == 1)
{
- $sql = 'SELECT MAX(post_id) as last_post_id
- FROM ' . POSTS_TABLE . '
- WHERE ' . $db->sql_in_set($type . '_id', $ids) . '
- AND post_approved = 1';
+ $sql = 'SELECT MAX(p.post_id) as last_post_id
+ FROM ' . POSTS_TABLE . " p $topic_join
+ WHERE " . $db->sql_in_set('p.' . $type . '_id', $ids) . "
+ $topic_condition
+ AND p.post_approved = 1";
}
else
{
- $sql = 'SELECT ' . $type . '_id, MAX(post_id) as last_post_id
- FROM ' . POSTS_TABLE . '
- WHERE ' . $db->sql_in_set($type . '_id', $ids) . "
- AND post_approved = 1
- GROUP BY {$type}_id";
+ $sql = 'SELECT p.' . $type . '_id, MAX(p.post_id) as last_post_id
+ FROM ' . POSTS_TABLE . " p $topic_join
+ WHERE " . $db->sql_in_set('p.' . $type . '_id', $ids) . "
+ $topic_condition
+ AND p.post_approved = 1
+ GROUP BY p.{$type}_id";
}
$result = $db->sql_query($sql);