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

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


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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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