Перейти к контенту
  • 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-сервера.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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