SQL-запрос

Добрый вечер,

Надеюсь на вашу помощь, уважаемые коллеги — прошу помочь с составлением SQL-запроса. Необходимость была вызвана тем фактом, что в ходе плановых работ по приведению в порядок тегов все они были вручную заменены в таблице prefix_topic. Соответственно, прошу подсказать, как на основе измененных данных проапдейтить таблицу topic_tag?

Спасибо.

6 комментариев

avatar
Чистым SQL никак. Если топиков не много, можете просто сделать с каждым редактировать\сохранить.
avatar
Почти 2000 топиков. Ох, тяжело быть чайником.
Спасибо :) Я это подозревал )
avatar
А можно в Topic.class.php добавить такую функцию.
public function UpdateTopicsTags(){
		// выбираем все опубликованные топики
		$aResult = $this->GetTopicsByFilter(array('topic_publish' => 1));
		$aTopics = $aResult['collection'];
		foreach ($aTopics as $oTopic) {
			// удаляем старые и заполняем новые тэги
			$aTags = explode(',', $oTopic->getTags());
			$this->DeleteTopicTagsByTopicId($oTopic->getId());
			if ($oTopic->getPublish()) {
				foreach ($aTags as $sTag) {
					$oTag = Engine::GetEntity('Topic_TopicTag');
					$oTag->setTopicId($oTopic->getId());
					$oTag->setUserId($oTopic->getUserId());
					$oTag->setBlogId($oTopic->getBlogId());
					$oTag->setText($sTag);
					$this->oMapperTopic->AddTopicTag($oTag);
				}
			}
		}
	}

И вызвать в каком-нибудь экшне
$this->Topic_UpdateTopicsTags();
и тэги обновятся.
Напоминаю, нужно обязательно делать бэкап, все операции выполняете на свой страх и риск, ответственности не несу =)
avatar
Господи, если бы Вы знали, как я Вам благодарен. Вручную перепахал почти 2000 топиков, чтобы малость рассортировать все по тегам, ибо пользователи на теги практически забили. Я уж думал, что — все, ночью мне не спать. Но тут пришли Вы — и стали мои избавителем.

Спасибо Вам искреннее и всеабсолютнейшее, Вашими стараниями сайт стал еще более адекватным. У меня слов нет, как сильно я Вам благодарен.
avatar
Значит скрипт сработал, я очень рад. Непофигизм творит чудеса =)))
avatar
Исключительно Вашими стараниями :) Еще раз спасибо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.