Перейти к контенту
  • 0

как удалить несуществующих пользователей ?


VictorKiev

Вопрос

Приветствую! за годы существования форума накопилось достаточное количество (несколько тысяч) невалидных акаунтов пользователей, во время рассылки приходит огромное количество писем от хостера - mail not delivered.

хочется почистить базу от этих аккаунтов, есть ли какой то способ массового удаления аккаунтов через phpmyadmin, имея только их email адреса ?

также нужно учесть что удалить нужно только аккаунты - пустышки, не имеющие ни одного сообщения.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

решил проблему  более топорно, но эффективно - через штатную функцию удаления

просто удалил ВСЕ аккаунты старых пользователей, зарегистрированные за первые 4 года создания форума (форуму 5 с половиной лет) - и которые при этом не заходили на сайт за последние полтора года и не писали за все время ни одного сообщения.

таких набралось аж 7500 из 11000 аккаунтов. ))) видно люди просто регистрировались чтобы скачатькакие то материалы или получить ссылки на книжки - у меня ссылки не видны без регистрации - и потом форумом не пользовались..

 

уверен среди оставшихся будет уже какое то вменяемое количество невалидных емайлов которые можно будет вычистить вручную.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
проблема в том, что пользователи распиханы по нескольким таблицам, так что так просто взять и удалить не получится
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно написать скриптик, запускать его из админки, скажем из "пересчет и обновление" или на "удаление пользователей". И ура-вперёд. Только ОЧЕНЬ внимательно и при наличии свежего бэкапа, а то одно неловкое движение и...

Я с полгода назад такую штуку делала, таки у меня одна таблица галереи пострадала. :D Благо, бэкапов пачка... но УРОК. :D

Дописано:

Принцип следующий:

DELETE a FROM _нужная_таблица_ a LEFT JOIN ibf_members m ON (a._поле_с_id_юзера_в_нужной_таблице_=m.id) WHERE m.id IS NULL;

Можно и вручную по той же схеме.

Удачи!

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Есть же функция штатного удаления, работающая корректно, удаляющая и аватарки, и аттачи, а не только запись в таблице мемберов.

Зачем городить огород с рукописными запросами удаления? Запросом получить айдишники нуждающихся в удалении, и в цикле вызывать штатную функцию...

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Если бы функция штатного удаления работала корректно, не было бы и этой темы. :D Но она удаляет далеко НЕ из всех таблиц, остаются хвосты; у меня, например, по разным таблицам набралось больше 100 тысяч строк. Конечно, по хорошему надо дописывать эти "неучтенные" таблицы во встроенную функцию удаления, но хвосты она не уберет. ;) Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Конечно, по хорошему надо дописывать эти "неучтенные" таблицы во встроенную функцию удаления, но хвосты она не уберет. ;)

Надо доводить до ума функцию удаления.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да, это без вариантов, но речь о другом: даже доведенная до идеала штатная функция удаления _существующих_ пользователей по-любому не уберет уже имеющиеся хвосты пользователей, удаленных ранее. ;) То есть, по-любому, либо скриптик подчистки, либо ручками-ручками. ;)
Ссылка на комментарий
Поделиться на других сайтах

  • 0

по-любому, либо скриптик подчистки, либо ручками-ручками. ;)

Я делал что-то подобное на своей IPB 1.3 запросами типа такого

DELETE FROM ibf_members_extra
WHERE mid NOT IN(
 SELECT id FROM ibf_members
)

 

UPD

Несколькими сообщениями выше есть аналогичный запрос...

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Зависит не столько от количества удаляемых, сколько от размеров таблиц в запросе. Если удалить 10 К из таблицы в 100 К - без проблем. Если из таблицы в миллионы записей - запрос может длиться столь долго, что фактически будет зависание sql-сервера.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.