aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/functions_admin.php98
1 files changed, 52 insertions, 46 deletions
diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php
index 0a3b994dbb..40377c1bfe 100644
--- a/phpBB/includes/functions_admin.php
+++ b/phpBB/includes/functions_admin.php
@@ -591,69 +591,75 @@ function delete_attachments($mode, $ids, $resync = TRUE)
$topic_ids = array_unique($topic_ids);
// Update post indicators
- if ($mode == 'post' || $mode == 'topic')
+ if (sizeof($post_ids))
{
- $db->sql_query('UPDATE ' . POSTS_TABLE . '
+ if ($mode == 'post' || $mode == 'topic')
+ {
+ $db->sql_query('UPDATE ' . POSTS_TABLE . '
SET post_attachment = 0
WHERE post_id IN (' . implode(', ', $post_ids) . ')');
- }
+ }
- if ($mode == 'user' || $mode == 'attach')
- {
- $remaining = array();
+ if ($mode == 'user' || $mode == 'attach')
+ {
+ $remaining = array();
- $sql = 'SELECT post_id
- FROM ' . ATTACHMENTS_TABLE . '
- WHERE post_id IN (' . implode(', ', $post_ids) . ')';
- $result = $db->sql_query($sql);
+ $sql = 'SELECT post_id
+ FROM ' . ATTACHMENTS_TABLE . '
+ WHERE post_id IN (' . implode(', ', $post_ids) . ')';
+ $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
- {
- $remaining[] = $row['post_id'];
- }
- $db->sql_fetchrow($result);
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $remaining[] = $row['post_id'];
+ }
+ $db->sql_fetchrow($result);
- $unset_ids = array_diff($post_ids, $remaining);
- if (sizeof($delete_ids))
- {
- $db->sql_query('UPDATE ' . POSTS_TABLE . '
- SET post_attachment = 0
- WHERE post_id IN (' . implode(', ', $unset_ids) . ')');
+ $unset_ids = array_diff($post_ids, $remaining);
+ if (sizeof($unset_ids))
+ {
+ $db->sql_query('UPDATE ' . POSTS_TABLE . '
+ SET post_attachment = 0
+ WHERE post_id IN (' . implode(', ', $unset_ids) . ')');
+ }
}
}
- // Update topic indicator
- if ($mode == 'topic')
- {
- $db->sql_query('UPDATE ' . TOPICS_TABLE . '
- SET topic_attachment = 0
- WHERE topic_id IN (' . implode(', ', $topic_ids) . ')');
- }
-
- if ($mode == 'post' || $mode == 'user' || $mode == 'attach')
+ if (sizeof($topic_ids))
{
- $remaining = array();
-
- $sql = 'SELECT topic_id
- FROM ' . ATTACHMENTS_TABLE . '
- WHERE topic_id IN (' . implode(', ', $topic_ids) . ')';
- $result = $db->sql_query($sql);
-
- while ($row = $db->sql_fetchrow($result))
+ // Update topic indicator
+ if ($mode == 'topic')
{
- $remaining[] = $row['topic_id'];
+ $db->sql_query('UPDATE ' . TOPICS_TABLE . '
+ SET topic_attachment = 0
+ WHERE topic_id IN (' . implode(', ', $topic_ids) . ')');
}
- $db->sql_fetchrow($result);
- $unset_ids = array_diff($topic_ids, $remaining);
- if (sizeof($unset_ids))
+ if ($mode == 'post' || $mode == 'user' || $mode == 'attach')
{
- $db->sql_query('UPDATE ' . TOPICS_TABLE . '
- SET topic_attachment = 0
- WHERE topic_id IN (' . implode(', ', $unset_ids) . ')');
+ $remaining = array();
+
+ $sql = 'SELECT topic_id
+ FROM ' . ATTACHMENTS_TABLE . '
+ WHERE topic_id IN (' . implode(', ', $topic_ids) . ')';
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $remaining[] = $row['topic_id'];
+ }
+ $db->sql_fetchrow($result);
+
+ $unset_ids = array_diff($topic_ids, $remaining);
+ if (sizeof($unset_ids))
+ {
+ $db->sql_query('UPDATE ' . TOPICS_TABLE . '
+ SET topic_attachment = 0
+ WHERE topic_id IN (' . implode(', ', $unset_ids) . ')');
+ }
}
}
-
+
return $num_deleted;
}