Как массово заганать определенную большую часть пользователей в группу?

Автор Istoric, 01 марта 2013, 19:35:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Istoric

Объясняю суть ..

Раньше был включен вход ВКонтакте теперь отключили.. Остальось куча пользователей которые имеют логины вида id......... и соответственно почту вида ...... @vkontakte.ru   

Хочется их загнать всех в одну группу.. дабы изх потом массово можно было исключать например  из рассылки (слишком много обратно писем идет)

Но штатными средствами не могу найти как это сделать.. можно их всех отобрать по почте например в поиски и удалить.. удалять не хочется, их много сразу пользователей на форуме станет меньше по статистике.

А в группу массово добавить тоже не получается ( только каждого вручную это не реально.

Может подскажет кто какое решение? Как их можно было отобрать по части логина или почты и оптом засунуть в нужную группу?

Slavegirl

Меняла группу 10 тыс. пользователей с помощью iMacros, предварительно отобрав их номера по общему критерию и сохранив в отдельный CSV файл. Времени заняло примерно 3 часа.
Как вариант, можно обойтись более быстрым способом, сочинив правильный SQL-запрос и выполнить его в phpMyAdmin.

Macros.iim

SET !DATASOURCE "D:\\Макросы\\Users.csv"
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}

URL GOTO=http://[censored]/profile/?area=account;u={{!COL1}}
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:creator ATTR=ID:additional_groups-10 CONTENT=YES
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:creator ATTR=VALUE:Change<SP>profile


Users.csv

"5"
"6"
"7"
......
......
"10000"

Istoric


Сапожник

Создаешь группу и запоминаешь ее номер
Далее в phpmyadmin выполняешь запрос:

UPDATE `smf_members`
SET `additional_groups` = НОМЕР_ГРУППЫ
WHERE `member_name` LIKE 'id%' AND
`email_address` LIKE '%@vkontakte.ru'

Должно сработать ;)
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric

Спасибо
А вот это как там сделать? Как зайти в рнр админ я знаю а дальше там куда нажимать чтобы выполнить этот запрос? )
Цитата: Сапожник от 01 марта 2013, 21:17:20Далее в phpmyadmin выполняешь запрос:

Сапожник

Найди кнопочку SQL и откроется поле для ввода запроса.
Копируешь его туда, и нажимаешь кнопку "Ok"
Во второй строчке не забудь вставить свой НОМЕР_ГРУППЫ и в четвертой строчке замени [at] на собаку :)

Ps На всякий случай, зайди в таблицу smf_members и забэкапь ее (снизу есть кнопка)

Ps2 После выполнения запроса, сверху появится зеленая строка:
Затронуто строк: xxxx ( запрос занял 0.0006 сек. )
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric

Цитата: Сапожник от 02 марта 2013, 00:57:32Ps На всякий случай, зайди в таблицу smf_members и забэкапь ее (снизу есть кнопка)
все хорошо.. не могу найти где эта таблица..

Короче все равно нажал ОК .. судя по смыслу того что он ругнулся он тоже не нашел такой таблицы

Сапожник

Может у тебя префикс другой.
Опиши как у тебя по сравнению с моим скриншотом.
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric


Istoric

ОТЛИЧНО!!! Все получилось !!

Затронуто 1665 строк. ( Запрос занял 0.0394 сек. )

Все как надо. ОГРОМНОЕ СПАСИБО ))

Istoric

Вопрос как теперь эту группу полностью удалить? )))  у меня только поштучно опять получается  (( неужели нет какого то пункта меню типа удалить группу и всех пользователей в ней?

karavan


Сапожник

DELETE FROM `smf_members` WHERE`additional_groups` = НОМЕР_ГРУППЫ

Должно сработать ;)
Зы. Если что,  не виноват :-) 
Бэкап обязателен
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric

Цитата: karavan от 27 апреля 2013, 22:35:55Есть, в админке, где настройки группы.
Так только группа удалилась, а пользователи осталась (((

Цитата: Сапожник от 27 апреля 2013, 23:30:06Должно сработать Зы. Если что,  не виноват :-)  Бэкап обязателен
Прям напряжно... (( с бекапа вытаскивать ка кто не очень охота (( А кто бы поувереннее сказал? ))))

Сапожник

Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric

Цитата: Сапожник от 22 мая 2013, 13:56:50Забекапь таблицу и на ней попробуй  30 секунд работы
Попытаюсь разобраться как это сделать ( Какую таблицу бекапить?

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Slavegirl

Есть такой мод "User mass action": http://custom.simplemachines.org/mods/index.php?mod=3104 Он позволяет выполнять расширенные манипуляции со списком пользователей.

Если в "Админка - Конфигурация - Свойства и параметры - Отображение - Количество пользователей на страницу (в списке пользователей)" временно выставить значение 999 (больше нельзя), то при поиске пользователей по определенным критериям (домен электронной почты, дополнительная группа и т.п.) перед Вами откроется довольно приличный список пользователей на 1 страницу.

Вашу первую задачу, кстати, можно было выполнить тоже с использованием этого мода. Я же предложила ранее использовать iMacros, так как у меня была более специфическая задача - изменить несколько значений в профилях пользователей из определенной группы. Прямых SQL-запросов в phpMyAdmin на коммерческих проектах я стараюсь избегать.

Istoric

Цитата: Slavegirl от 22 мая 2013, 19:17:51Есть такой мод "User mass action": http://custom.simplemachines.org/mods/index.php?mod=3104 Он позволяет выполнять расширенные манипуляции со списком пользователей.
это было бы идеальным решением, но при попытке установки выдает следующее..

Стоит ли устанавливать его тогда?

Slavegirl

У меня этот мод уже давно стоит и работал на версиях 2.0.1-2.0.4 (правда, до сих пор не русифицировала). Может быть, конфликт с каким-то другим модом? Взгляните, какой именно участок он не может найти и заменить при установке. Ошибку скорее всего можно будет устранить вручную.

Istoric

Цитата: Сапожник от 01 марта 2013, 21:17:20Создаешь группу и запоминаешь ее номерДалее в phpmyadmin выполняешь запрос:Код: [Выделить]UPDATE `smf_members`SET `additional_groups` = НОМЕР_ГРУППЫWHERE `member_name` LIKE 'id%' AND`email_address` LIKE '%[at]vkontakte.ru' Должно сработать
ничего не понимаю.. в прошлый раз делал этот запрос все сработало... потом группу удалил.. теперь создал снова.. пытаюсь опять туда загнать всех.. пишет запрос выполнен но строк затронуто 0 (((( ничего не понимаю

Сапожник

Чудес не бывает...
Попробуй
SELECT *
FROM `smf_members`
WHERE `member_name` LIKE 'id%' AND`email_address` LIKE '%[at]vkontakte.ru'

должно вывести всех этих пользователей.
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Istoric

Куда вывести? )))

сделал

MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0080 сек. )
хотя среди пользователей они точно есть.. смотрел

Mavn

символ собака здесь заменяется на at поэтому будьте внимательнее
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Istoric

ну я собственно просто копировал как здесь.. а надо разве собаку ставить?  вроде нет

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Istoric

Цитата: Mavn от 11 июля 2013, 05:02:07если внимательно присмотритесь то нужно...после LIKE
ТОЧНО!!!! ) Вместо ат ставишь собачку и все работает )  ура ) все загнались и потом всех удалил!! ОГРОМНОЕ СПАСИБО ВСЕМ! ))