Доктор Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 Случайно удалил пользователя, который вёл дневник. Он вновь зарегился, но из-за несоответствия ID не может пользоваться своим старым дневником. Подскажите, как грамотно вернуть ему дневник? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 таблица jmembers, насколько помню ид дневника=ид пользователятакже см таблицы jposts, jcomments и т.д., очень много где есть его идвсе - запросы update Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 Я делал, правда для "однушки", склейку двух пользователей в одного, в том числе и журнала.Посмотрите запросы, это довольно полный набор: $DB->query("SELECT id, name FROM ibf_members WHERE name = '".$ibforums->input['mprim']."' OR name = '".$ibforums->input['msec']."'"); if($DB->get_num_rows()==2) { while ( $r = $DB->fetch_row() ) { if($r['name'] == $ibforums->input['mprim']) { $prim_name = $r['name']; $prim_id = $r['id']; } if($r['name'] == $ibforums->input['msec']) { $sec_name = $r['name']; $sec_id = $r['id']; } } $DB->query("UPDATE ibf_posts SET author_name = '".$prim_name."', author_id = '".$prim_id."' WHERE author_id = ".$sec_id); $DB->query("UPDATE ibf_messages SET from_id = ".$prim_id." WHERE from_id = ".$sec_id); $DB->query("UPDATE ibf_messages SET member_id = ".$prim_id." WHERE member_id = ".$sec_id); $DB->query("UPDATE ibf_messages SET recipient_id = ".$prim_id." WHERE recipient_id = ".$sec_id); $DB->query("UPDATE ibf_topics SET starter_id = ".$prim_id.", starter_name = '".$prim_name."' WHERE starter_id = ".$sec_id); $DB->query("UPDATE ibf_topics SET last_poster_id = ".$prim_id.", last_poster_name = '".$prim_name."' WHERE last_poster_id = ".$sec_id); $DB->query("UPDATE ibf_tracker SET member_id = ".$prim_id." WHERE member_id = ".$sec_id); $DB->query("UPDATE ibf_forum_tracker SET member_id = ".$prim_id." WHERE member_id = ".$sec_id); $DB->query("UPDATE ibf_jposts SET journal_id = '".$prim_id."' WHERE journal_id = ".$sec_id); $DB->query("UPDATE ibf_jposts SET author_name = '".$prim_name."', author_id = '".$prim_id."' WHERE author_id = ".$sec_id); $DB->query("UPDATE ibf_jcomments SET owner_id = '".$prim_id."' WHERE owner_id = ".$sec_id); $DB->query("UPDATE ibf_jcomments SET author_name = '".$prim_name."', author_id = '".$prim_id."' WHERE author_id = ".$sec_id); $DB->query("UPDATE ibf_moderators SET member_name = '".$prim_name."', member_id = '".$prim_id."' WHERE member_id = ".$sec_id); $DB->query("UPDATE ibf_calendar_events SET userid = '".$prim_id."' WHERE userid = ".$sec_id); $DB->query("SELECT tid from ibf_voters WHERE member_id = ".$sec_id); if($DB->get_num_rows()) { $woted_tids = Array(); while($r = $DB->fetch_row())$woted_tids[] = $r['tid']; $woted_tids = implode(",",$woted_tids); $DB->query("UPDATE ibf_voters SET member_id = '".$prim_id."' WHERE tid NOT IN(".$woted_tids.") AND member_id = ".$sec_id); } $DB->query("DELETE from ibf_members WHERE id = ".$sec_id); $DB->query("DELETE from ibf_pfields_content WHERE member_id = ".$sec_id); $DB->query("DELETE from ibf_member_extra WHERE id = ".$sec_id); $DB->query("DELETE from ibf_validating WHERE member_id = ".$sec_id); $DB->query("SELECT id, name FROM ibf_members ORDER BY joined DESC LIMIT 1"); $memb = $DB->fetch_row(); $DB->query("SELECT COUNT(id) as members from ibf_members"); $r = $DB->fetch_row(); $DB->query("UPDATE ibf_stats SET MEM_COUNT = '".$r['members']."', LAST_MEM_NAME = '".$memb['name']."', LAST_MEM_ID = '".$memb['id']."'"); $this->result = "<div align=center>Данные пользователя <b>".$sec_name."</b> успешно перенесены на аккаунт <b>".$prim_name."</b></div>"; $this->result .= "<div align=center><a href='index.php?act=module&module=banka'>Продолжить</a> || <a href='java script:window.close()'>Закрыть окно</a></div>"; } else { $this->result = "Неверно введены имена пользователей!"; } Достаточно будет всего 4 запроса, чтобы перенести сами сообщения и комментарии к ним. Такой фигней, как статистика посещений и личные настройки, при склейке не занимался; да и в Вашем случае наверное можно их не восстанавливать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 друзья не забыть Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Доктор Опубликовано 9 Августа 2009 Автор Жалоба Поделиться Опубликовано 9 Августа 2009 Спасибо, попробую. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Allure Опубликовано 12 Августа 2009 Жалоба Поделиться Опубликовано 12 Августа 2009 Можно и восстановить пользователя - http://forums.ibresource.ru/index.php?showtopic=15463 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.