Song Опубликовано 29 Мая 2005 Жалоба Поделиться Опубликовано 29 Мая 2005 (изменено) Внимание! Только для опытных пользователей! Внимание. Только основные таблицы ! Восстановление (например, после удаления): Посты:UPDATE ibf_posts SET author_id='ноый_ид' WHERE author_id=0 and author_name='имя_удалённого' Топики:UPDATE ibf_topics SET starter_id='новый_ид' WHERE starter_id=0 and starter_name='имя_удалённого' Число постов:Для форумов версии 1.х:SELECT COUNT(p.pid) FROM ibf_posts p, ibf_forums f WHERE p.author_id='новый_ид' and p.forum_id=f.id and f.inc_postcount=1 Для форумов версии 2.х:SELECT COUNT(p.pid) FROM ibf_posts p, ibf_forums f, ibf_topics t WHERE p.author_id='новый_ид' and p.topic_id=t.tid and t.forum_id=f.id and f.inc_postcount=1 Запоминаем выданное число и вписываем его вместо ххх в нижеследующий запрос (запрос для форумов любых версий):UPDATE ibf_members SET posts='xxx' WHERE id='новый_ид' Изменено 2 Января 2006 пользователем Song Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 29 Мая 2005 Автор Жалоба Поделиться Опубликовано 29 Мая 2005 Склейка двух пользователей в одного (ТОЛЬКО ОСНОВНЫЕ ТАБЛИЦЫ): UPDATE ibf_members SET posts=posts+$posts_name2 WHERE id=$id_name1UPDATE ibf_posts SET author_name=$author_name_name1, author_id=$author_id_name1 WHERE author_id=$author_id_name2UPDATE ibf_topics SET starter_id=$starter_id_name1, starter_name=$starter_name_name1 WHERE starter_id=$starter_id_name2UPDATE ibf_topics SET last_poster_id=$last_poster_id_name1, last_poster_name=$last_poster_name_name1 WHERE last_poster_id=$last_poster_id_name2 PM Для 1.2, 1.3:UPDATE ibf_messages SET from_id=$author_id_name1 WHERE from_id=$author_id_name2UPDATE ibf_messages SET member_id=$author_id_name1 WHERE member_id=$author_id_name2UPDATE ibf_messages SET recipient_id=$author_id_name1 WHERE recipient_id=$author_id_name2 Для 2.х: посты PM:UPDATE ibf_message_text SET msg_author_id=$msg_author_id_name1 WHERE msg_author_id=$msg_author_id_name2 базы заголовков сообщений ОТ КОГО:UPDATE ibf_message_topics SET mt_from_id=$mt_from_id_name1 WHERE mt_from_id=$mt_from_id_name2 базы заголовков сообщений КОМУUPDATE ibf_message_topics SET mt_to_id=$mt_to_id_name1 WHERE mt_to_id=$mt_to_id_name2 Добавка для IPB 2.x: аттачменты:UPDATE ibf_attachments SET attach_member_id=$attach_member_id_name1 WHERE attach_member_id=$attach_member_id_name2 Во всех запросах переменные с name1 относятся к желаемому имени, c name2 - к удаляемому. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Zuboskal Опубликовано 5 Сентября 2005 Жалоба Поделиться Опубликовано 5 Сентября 2005 SongВернуть себе посты и темы получилось,но вот так вернуть себе свою репутацию и данные профиля? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 6 Сентября 2005 Автор Жалоба Поделиться Опубликовано 6 Сентября 2005 Эти запросы только основные.Для всего остального нужны драйвера hands.sys и brain.vxd Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Super Gonzo Опубликовано 9 Октября 2005 Жалоба Поделиться Опубликовано 9 Октября 2005 SongПытаюсь склеить двух пользователей, и чё-то не получается у меня ни хрена... В общем, старик - дуб-дубом (с) Давай на примере первого запроса. Вот я его делаю, подставляя имена:UPDATE ibf_members SET posts=posts+$posts_maksla WHERE id=$id_maksВыдается ошибка. Либо:Unknown column '$id_maks' in 'where clause'Либо:Unknown column '$posts_maksla' in 'field list'На сколько я понимаю, я не правильно указываю переменные... Разжуй, пожалуйста. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 10 Октября 2005 Автор Жалоба Поделиться Опубликовано 10 Октября 2005 $id_maks - это id юзера с именем maks.Если не знаешь, что это такое, лучше ничего не делай. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Super Gonzo Опубликовано 10 Октября 2005 Жалоба Поделиться Опубликовано 10 Октября 2005 Если не знаешь, что это такое, лучше ничего не делай.Не боись, я на локалке. Весь обвешанный бэкапами... Надо жу учиться все-таки. ид пользователя я подставлял, тогда ругаться перестаетНо вот что с этим делать: posts+$posts_name2 не врубаюсь... Там что, просто количество постов пользователя прописать, или это "вынуть" из таблицы надо? [1128945834:1128946827]Так, первый вопрос схавало...Теперь проблемка со вторым конкретно - с author_name=$author_name_name1 Если пишу author_name=Vasya, ругется... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 10 Октября 2005 Автор Жалоба Поделиться Опубликовано 10 Октября 2005 Все $*_name1 - это поля *, относящиеся к нику 1Все $*_name2 - это поля *, относящиеся к нику 2 Например $author_name_name2 - это поле author_name относящеся к нику 2.Строковые литералы должны заключаться в апострофы:author_name='Vasya' Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Super Gonzo Опубликовано 10 Октября 2005 Жалоба Поделиться Опубликовано 10 Октября 2005 Ай, спасибо Айболит (с) Фсе работает Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Armis Опубликовано 14 Октября 2005 Жалоба Поделиться Опубликовано 14 Октября 2005 Восстановление (например, после удаления): ПостыUPDATE ibf_posts SET author_id='ноый_ид' WHERE author_id=-1 and author_name='имя_удалённого'.............. Прошу прощения, не совсем понял, надо сначала нового юзера создать и уже его id подставлять в author_id='ноый_ид' ? Если правильно, то на 3 шаге выдает ошибку: Unknown column 'p.forum_id' in 'where clause' Не подскажете в чем дело? Версия - ipb 2.0.4 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Дирижёр Опубликовано 14 Октября 2005 Жалоба Поделиться Опубликовано 14 Октября 2005 Да пожалуйста поясните ... Значит надо создать нового пользователя с таким же ником, а потом с ним операции осуществлять? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 16 Октября 2005 Автор Жалоба Поделиться Опубликовано 16 Октября 2005 Прошу прощения, не совсем понял, надо сначала нового юзера создатьСмотря что вы хотите сделать.Если восстановить удалённого - то да, конечно, сначала надо создать нового, а потом к нему присовокупить все данные ранее удалённого.Если склеить двух то никого соответственно создавать не надо, а после склейки ненужного удалить. Если правильно, то на 3 шаге выдает ошибку:http://www.sysman.ru/smiles/Main/wall.gifмлин, забыл что во 2-ом инвижине, нету этого поля !Ок, сейчас подправлю самый первый пост этого топика. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Armis Опубликовано 20 Октября 2005 Жалоба Поделиться Опубликовано 20 Октября 2005 Song , спасибо Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vladisr Опубликовано 22 Октября 2005 Жалоба Поделиться Опубликовано 22 Октября 2005 Может это и идиотский вопрос но где это все я пишу? Мне надо восстонавить пользователя.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Armis Опубликовано 23 Октября 2005 Жалоба Поделиться Опубликовано 23 Октября 2005 vladisr, в phpmyadmin или в админке Управление SQL - Средства SQL , внизу -выпонить запрос Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anthony Опубликовано 1 Января 2006 Жалоба Поделиться Опубликовано 1 Января 2006 (изменено) Ничего не понял. Разьве просто запросами в БД старый пользователь не восстановится? Хорошо, я так понял, что для восст. пользователя надо сперва создать нового.Тогда вопрос:Под тем же именем, что и был, или надо что-то другое?Какой ID вводить, следующий после посл. на текущ. момент? ID удалённого пользователя я не помню. Да, и что значит "Внимание. Только основные таблицы !"? В общем так: Ник удалённого пользователя - Westсоздал нового пользователя - West1 (ID 583)Сделал запрос UPDATE ibf_posts SET author_id='583' WHERE author_id=-1 and author_name='West' и UPDATE ibf_topics SET starter_id='583' WHERE starter_id=-1 and starter_name='West'Никаких изменений. Удалённый пользователь West так и отображается гостем. Изменено 1 Января 2006 пользователем Anthony Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
sM1Le Опубликовано 2 Января 2006 Жалоба Поделиться Опубликовано 2 Января 2006 Ничего не понял. Разьве просто запросами в БД старый пользователь не восстановится? Хорошо, я так понял, что для восст. пользователя надо сперва создать нового.Тогда вопрос:Под тем же именем, что и был, или надо что-то другое?Какой ID вводить, следующий после посл. на текущ. момент? ID удалённого пользователя я не помню. Да, и что значит "Внимание. Только основные таблицы !"? В общем так: Ник удалённого пользователя - Westсоздал нового пользователя - West1 (ID 583)Сделал запрос UPDATE ibf_posts SET author_id='583' WHERE author_id=-1 and author_name='West' и UPDATE ibf_topics SET starter_id='583' WHERE starter_id=-1 and starter_name='West'Никаких изменений. Удалённый пользователь West так и отображается гостем.В Song'овском запросе вместо «-1» попробуйте «0» Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 2 Января 2006 Автор Жалоба Поделиться Опубликовано 2 Января 2006 >> Да, и что значит "Внимание. Только основные таблицы !"? это значит что восстановятся не все данные, которые относились к старому пользователю. Только основные. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
USSRxSerg Опубликовано 16 Января 2006 Жалоба Поделиться Опубликовано 16 Января 2006 Из выше написанного, я понял, что восстановить удаленного можно с другим ID, правильно? А если мне надо восстановить именно ID? (удален пользователь №2, надо восстановить, плевать на ник и сообщения, важен сам факт наличия юзера №2) Спасибо. Версия форума 2.1.х Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 16 Января 2006 Жалоба Поделиться Опубликовано 16 Января 2006 Регаем юзера, а затем суда:Смена id пользователя. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
mrMad-Cat Опубликовано 29 Июня 2006 Жалоба Поделиться Опубликовано 29 Июня 2006 Извените наверно за глупые вопросы, я в этом не разбераюсь но оно мне надо. Не пойму:1)как делать запрос:UPDATE ibf_members SET posts=posts+$posts_name2 WHERE id=$id_name1 Что надо писать вместо нейм 1 и нейм2? Вообщем привидите пожалуйста пример с двумя пользователями. Там что надо их ники писать? С никами у меня впрочем не вышло.2) если я просто выполню смену айди для 1 пользователя на айди пользователя с которым мне его надо соеденить это сработате как обьеденение? Если да то зачем тогда другие запросы? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
OverHerz Опубликовано 29 Июня 2006 Жалоба Поделиться Опубликовано 29 Июня 2006 1)как делать запрос:UPDATE ibf_members SET posts=posts+$posts_name2 WHERE id=$id_name1примерUPDATE ibf_members SET posts= '254' WHERE id='10' 2) если я просто выполню смену айди для 1 пользователя на айди пользователя с которым мне его надо соеденить это сработате как обьеденение? Если да то зачем тогда другие запросы?нет а вообще читай тему, все давно разжевано Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dareean Опубликовано 29 Июня 2006 Жалоба Поделиться Опубликовано 29 Июня 2006 Эти запросы только основные.Для всего остального нужны драйвера hands.sys и brain.vxd Хотел заиметь головную боль? Ты её заимел Нафинг вообще было тему поднимать. В загловке понравилось: "Если не знаете - не лезтье!"Блин, кто знает, тот и сам допрет, что к чему. Как я например Менсяц назад устанавливал мод. При переносе на действующий хост, забыл настроить. Из базы вытерло больше половины юзверьков. Зы... MySQL бекап выдрад таблицу members и скрипт который сравнивал с таблой на хосте, кого нить и привязывал сообщения к юзверям обратно. Просто не хотелось терять сообщений за сутки, поэтому чтал изгоялятся таким образом. Хотя мне всего то и надо было, что вернуть сообщения и темы владельцам. А потом провел пересчет статистики. И нафиг не стал востанавливать кол-во постов Щас поискал. Нифига файлик уже потер так бы показал код. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
mrMad-Cat Опубликовано 30 Июня 2006 Жалоба Поделиться Опубликовано 30 Июня 2006 Зачем возвращять посты юзеру. После склейки достаточно ж сделать пересчёт количества постов и всё само вернётся. КАкой смысл в таком запросе? А вообще в чём суть склейки? Надо поменять всем сообщениям с одним айди это йади на айди другого. Большеш ничего. Остальное делаеться пересчётом и обновлением. Если я не прав поправте.Что ещё надо? Ещё голоса в опросах. ПМ и атачи мне не надо. На этом всё? OverHerz если я задал вопрос то понятно что тему я читал. Более того, я тут каждый пост облизал по 5 раз. Вообщем я сделал 2 запроса:UPDATE ibf_posts SET author_name='Marvel', author_id='50' WHERE author_id='15'UPDATE ibf_voters SET member_id='50' WHERE member_id='15'А потом сделал все пересчёты. Вроде всё ок. Теперь старого пользователя можно удалить. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
OverHerz Опубликовано 30 Июня 2006 Жалоба Поделиться Опубликовано 30 Июня 2006 открою тайну - бывают такие форумы, которым больше 2-3 лет и на которых пересчет делать нельзя по многим причинам. На этом всё?топик_стартеры Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.