Posted Yesterday at 03:331 дн Привет, всем!Вручную удалял сообщения из таблицы bf_forums_posts, после чего возникло две проблемы:“Пагинация” старая сохранилась, сообщений уже нет, а куча зарезервированных страниц под отображение их осталось…. как пересчёт форума включить? Оказалось куча соседних сообщений от одного пользователя, как бы их автоматически склеить в одно? Их там сотни или тысячи, так что вручную совсем не вариант…..Буду рад любым советам, заранее спасибо, что не отказали ))
Yesterday at 12:171 дн Author Так же вопрос о том, как принудительно включить пересчёт постов во вкладке “Лидеры” - там где общая статистика Форума по количеству написанных постов. Ведь теперь постов меньше, но они не пересчитались и стоят старые значения лидерства.
21 hours назад21 hr Author Ну, получается, надо запросами пересчитывать всё? Типа, сначала пересчитать сообщения пользователей:UPDATE ibf_core_members mLEFT JOIN ( SELECT author_id, COUNT(*) as posts FROM ibf_forums_posts WHERE queued = 0 GROUP BY author_id) z ON m.member_id = z.author_idSET m.member_posts = IFNULL(z.posts, 0);Потом пересчитать сообщения в темах:UPDATE ibf_forums_topics tLEFT JOIN ( SELECT topic_id, COUNT(*) as posts FROM ibf_forums_posts WHERE queued = 0 GROUP BY topic_id) z ON z.topic_id = t.tidSET t.posts = IFNULL(z.posts, 0);Потом уже темы и сообщения:UPDATE ibf_forums_forums fLEFT JOIN ( SELECT forum_id, COUNT(*) as topics, SUM(posts) as posts FROM ibf_forums_topics GROUP BY forum_id) z ON z.forum_id = f.idSET f.topics = IFNULL(z.topics, 0), f.posts = IFNULL(z.posts, 0);И чего, все таким пердолингом занимаются, кто в БД залез или есть путь достойней?
5 hours назад5 hr Чтобы всё было корректно, вы должны повторить всё, что делает движок форума при удалении сообщения. Либо удалять штатными средствами. С объединением то же самое, либо галочки и “Объединить“, либо куча запросов к базе или свое небольшое приложение, которое это сделает за вас.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.