Замена старых ников на актуальные

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
KPEM
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 3 месяца
Благодарил (а): 2 раза

Замена старых ников на актуальные

Сообщение KPEM »

Товарищи,

Была смена ников ряда активных участников phpBB 3.x. Почти везде они поменялись (phpBB рулит), но в тех же цитатах остались старые (оно и понятно - лежит в формах). Некузяво. Хочется проактулизировать везде. "Поштучно" искать через тот же PhpMyAdmin - это как-то долго и криво. Да и вообще, не только в цитатах находит их MySQL. А также в полях, назначение которых для меня - загадка. Как бы чего не сломать... В общем, есть идеи как корректно и красиво решить эту задачу?
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Замена старых ников на актуальные

Сообщение Shredder »

Для цитат:

Код: Выделить всё

UPDATE `phpbb_posts` SET `post_text` = REPLACE( post_text, '[quote="старый_ник"', '[quote="новый_ник"' )
Если осталось ещё и в тексте самих сообщений (иногда обращаются друг ко другу по нику, в т.ч. по всяческим его "модификациям"), то, кроме как вручную, эта задача практически нерешаема.
KPEM
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 3 месяца
Благодарил (а): 2 раза

Re: Замена старых ников на актуальные

Сообщение KPEM »

Спасибо. В текстах тоже есть. Рыскаю потихоньку, смотрю...
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Замена старых ников на актуальные

Сообщение Shredder »

Для цитат SQL-запрос можно использовать благодаря их уникальной кодовой конструкции - можно быть уверенным, что таким способом не заменишь ничего лишнего. Для обычных же ников в сообщении - всё сложнее. Грубо говоря, если ник пользователя был мышь, и по этому нику обращались к нему в сообщениях, то в случае совпадения ника с частью простого текста, где это слово употреблялось не в качестве ника, а в ходе обычного разговора (например: "моя кошка съела мышь"), оно будет также заменено, потому что MySQL - не человек и не видит между ними различий. Но если ники были совсем уж какими-нибудь уникальными, типа Shadow001, то вполне можно обойтись запросом:

Код: Выделить всё

UPDATE `phpbb_posts` SET `post_text` = REPLACE( post_text, 'старый_ник', 'новый_ник' )
Запрос затронет одновременно и цитаты и вообще все вхождения слова в текст сообщений.
KPEM
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 3 месяца
Благодарил (а): 2 раза

Re: Замена старых ников на актуальные

Сообщение KPEM »

Да я это все понимаю, поэтому все же начал править ручками. И еще - нужно искать по жестким запросам, так как ники, скажем, "Вас", "Васил" и "Василек" могут существовать параллельно.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Замена старых ников на актуальные

Сообщение Shredder »

Я немного подредактировал первый запрос. Сделал его более жёстким, чтобы в вашем примере можно было использовать. Теперь будет нормально работать.
Сделайте бекап БД в любом случае - это следует делать при любых изменениях в базе.

Вернуться в «Поддержка phpBB 3.0.х»