Unico Опубликовано 21 Января 2013 Жалоба Поделиться Опубликовано 21 Января 2013 Надо выбрать 1. в определенном разделе форума 2. где встречается искомое слово в сообщении2. все сообщения определенного пользователя до определенной даты3. и поменять этим сообщениям автора (author_id и name) и дополнительно 4. поменять топикстартера в таких темах, поскольку пост изменится, но надо еще автора темы поменять Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 21 Января 2013 Жалоба Поделиться Опубликовано 21 Января 2013 скорее всего скрипт писать отдельно будет проще всегосначала селект ид, топик_ид из постов, а потом два запроса, отдельно на автора и отдельно на темукак я помню, признак форума хранится в таблице тем, поэтому запрос видаSELECT p.id, p.topic_id FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.id=p.topic_id) WHERE t.forum_id=___FORUM__ID___ AND p.post LIKE '%__WORD__%' AND p.author_id=___AUTHOR__ID___ AND p.date<'___UNIX_FORMAT_DATE___'все это исключительно из головы, так что имена полей могут быть другими Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 22 Января 2013 Жалоба Поделиться Опубликовано 22 Января 2013 как я помню, признак форума хранится в таблице темВ таблице сообщений ibf_posts хранится и айдишник темы topic_id, и айдишник форума forum_id. Но одним запросом конечно же не получится. Мне видится как минимум 7 запросов.Первым запросом собрать массив айдишников постов, удовлетворяющих условиям, и одновременно массив айдишников топиков.Вторым запросом собрать массив айдишников первых постов топиков из массива.Третьим запросом собрать массив последних постов в топиках, выбрав только те, которые удовлетворяют условиям. Одновременно собрать массив топиков, у которых последние посты меняют авторство.Четвертым запросом изменить авторство постов, полученных первыми двумя запросами.Пятым запросом изменить поле starter_id в таблице топиков.Шестым запросом изменить поле last_poster_id в таблице топиков для топиков, полученных третьим запросом.И наконец седьмым запросом изменить поля last_poster_id и last_poster_name в таблице форумов для тех записей, в которых поле last_id в массиве топиков, изменивших авторство последнего поста. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 23 Января 2013 Жалоба Поделиться Опубликовано 23 Января 2013 насчет автора темы задающий вопрос сказал как-то мутно и непонятно - надо менять автора темы у любой темы, или только у той, которую открыл искомый юзер P.S.В таблице сообщений ibf_posts хранится и айдишник темы topic_id, и айдишник форума forum_id.уверен что не ты сам это сделал?2.1:CREATE TABLE `ibf_posts` ( `pid` int(10) NOT NULL auto_increment, `append_edit` tinyint(1) default '0', `edit_time` int(10) default NULL, `edit_reason` varchar(255) NOT NULL default '', `author_id` mediumint(8) NOT NULL default '0', `author_name` varchar(32) default NULL, `use_sig` tinyint(1) NOT NULL default '0', `use_emo` tinyint(1) NOT NULL default '0', `ip_address` varchar(16) NOT NULL default '', `mac_address` varchar(255) default '', `post_date` int(10) default NULL, `icon_id` smallint(3) default NULL, `post` text, `queued` tinyint(1) NOT NULL default '0', `topic_id` int(10) NOT NULL default '0', `post_title` varchar(255) default NULL, `new_topic` tinyint(1) default '0', `edit_name` varchar(255) default NULL, `post_key` varchar(32) NOT NULL default '0', `post_parent` int(10) NOT NULL default '0', `post_htmlstate` smallint(1) NOT NULL default '0', PRIMARY KEY (`pid`), KEY `topic_id` (`topic_id`,`queued`,`pid`), KEY `author_id` (`author_id`,`topic_id`), KEY `post_date` (`post_date`), FULLTEXT KEY `post` (`post`) ) ENGINE=MyISAM (тут несколько добавлено мной, но ничего не удалено) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 24 Января 2013 Жалоба Поделиться Опубликовано 24 Января 2013 уверен что не ты сам это сделал?ipb\upload\sm_install.php:$SQL[] = "CREATE TABLE ibf_posts ( pid int(10) NOT NULL auto_increment, append_edit tinyint(1) default '0', edit_time int(10) default NULL, author_id mediumint(8) NOT NULL default '0', author_name varchar(32) default NULL, use_sig tinyint(1) NOT NULL default '0', use_emo tinyint(1) NOT NULL default '0', ip_address varchar(16) NOT NULL default '', post_date int(10) default NULL, icon_id smallint(3) default NULL, post text, queued tinyint(1) default NULL, topic_id int(10) NOT NULL default '0', forum_id smallint(5) NOT NULL default '0', attach_id varchar(64) default NULL, attach_hits int(10) default NULL, attach_type varchar(128) default NULL, attach_file varchar(255) default NULL, post_title varchar(255) default NULL, new_topic tinyint(1) default '0', edit_name varchar(255) default NULL, has_modcomment TINYINT(1) DEFAULT '0' NULL, PRIMARY KEY (pid), KEY topic_id (topic_id,author_id), KEY author_id (author_id), KEY forum_id (forum_id,post_date),FULLTEXT KEY post (post) ) TYPE=MyISAM;"; Это из дистрибутива 1.3 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 25 Января 2013 Жалоба Поделиться Опубликовано 25 Января 2013 интересно, почему они убрали это в 2.1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 25 Января 2013 Жалоба Поделиться Опубликовано 25 Января 2013 В двушке сделали многоуровневую вложенность подфорумов, под это видимо поменяли архитектуру. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Unico Опубликовано 1 Февраля 2013 Автор Жалоба Поделиться Опубликовано 1 Февраля 2013 Ух, как сложно )вопрос попроще... мне надо в тестовой копии форума,которая будет отдаваться для разработки модов поменять у всех юзеров пароли на какой-то одини емейлы на какой-то один... удалять мемберов нежелательно, их кол-во важно для теста модов. как это сделать? что-то с replace напомнютаблица ibf_membersполяpassword email Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 4 Февраля 2013 Жалоба Поделиться Опубликовано 4 Февраля 2013 Один запрос. UPDATE ibf_members SET password="qwerty", email="no@spam.me" where mid>0Имена полей только проверьте, писал по памяти. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
Unico
Надо выбрать
1. в определенном разделе форума
2. где встречается искомое слово в сообщении
2. все сообщения определенного пользователя до определенной даты
3. и поменять этим сообщениям автора (author_id и name)
и дополнительно
4. поменять топикстартера в таких темах, поскольку пост изменится, но надо еще автора темы поменять
Ссылка на комментарий
Поделиться на других сайтах
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.