Перейти к контенту

Как привязать старый дневник


Рекомендуемые сообщения

Случайно удалил пользователя, который вёл дневник. Он вновь зарегился, но из-за несоответствия ID не может пользоваться своим старым дневником.

 

Подскажите, как грамотно вернуть ему дневник?

Ссылка на комментарий
Поделиться на других сайтах

таблица jmembers, насколько помню ид дневника=ид пользователя

также см таблицы jposts, jcomments и т.д., очень много где есть его ид

все - запросы update

Ссылка на комментарий
Поделиться на других сайтах

Я делал, правда для "однушки", склейку двух пользователей в одного, в том числе и журнала.

Посмотрите запросы, это довольно полный набор:

			$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 запроса, чтобы перенести сами сообщения и комментарии к ним. Такой фигней, как статистика посещений и личные настройки, при склейке не занимался; да и в Вашем случае наверное можно их не восстанавливать.

Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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