CyberDem0n Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 в MySQL-е покапаюсь. Может подкручу счетчик в этих темах. Делается довольно просто... Точно структуру базы не помню, потому что смотрел давно. Там есть таблица (назовём её forum_topics), в которой храняться темы сообщений (топики), в этой таблице есть поле, в котором записано количество ответов (реплаев). И есть таблица с ответами на сообщения (назовём её forum_messages). В данном приближении задача решается следующими запросами: CREATE TABLE temp_table (id int,cnt int); INSERT INTO temp_table SELECT topic_id,count(*) from forum_messages GROUP BY topic_id; UPDATE forum_topics,temp_table SET forum_topics.msg_count=temp_table.cnt WHERE forum_topic.topic_id=temp_table.id; DROP TABLE temp_table; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Valera Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 Короче в свойствах тем параметр MySQL "TOPIC_POSTS" отвечает за кол-во сообщений. я вечером из дома сверю этот параметр c реальным кол-вом постов. и там видно будет, не тут ли собака порылась... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Valera Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 2 CyberDem0n с UPDATE можно такую кашицу получить лучше может ручками пару цифр подкрутить? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sevat Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 не показал?глюки не пропадают с самой первой аварии не показал, потому как раньше по этому пути и не ходили, вобщем. Ни по какому не ходили. На моей памяти один раз за проблему взялисть всем селом и исправили. Счетчики сообщений в топиках (поправьте меня, если я ошибаюсь) никто никогда еще не чинил, ничего по теме не читали, никакие заплатки не ставили в настройках исправлений не делали ... для начала надо все попробовать, т.к. уже хоть какой-то опыт накапливается, а потом уже к такому радикализму переходить, как новый форум со своими (я не сомневаюсь) тараканами. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Valera Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 ГЛЮК ПОЧИНЕН! В MySQL для темы Новости стояло 70 сообщений, а на самом деле было 72. А для 9-го корпуса 742 а надо было 741. Я исправил. Это просто блин до ужаса. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Valera Опубликовано 8 сентября, 2004 Поделиться Опубликовано 8 сентября, 2004 короче если кто еще где заметит - пишите. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CyberDem0n Опубликовано 9 сентября, 2004 Поделиться Опубликовано 9 сентября, 2004 2 CyberDem0n с UPDATE можно такую кашицу получить лучше может ручками пару цифр подкрутить? Если делать с умом - всё будет нормально. Я предложил универсальное решение, которое можно будет использовать и в дальнейшем при возникновении глюков. При твоём подходе придётся всё время работать руками. А как известно, прямоходящие один раз хорошо думают, зато потом не напрягаются :-) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sevat Опубликовано 9 сентября, 2004 Поделиться Опубликовано 9 сентября, 2004 Если делать с умом - всё будет нормально.Я предложил универсальное решение, которое можно будет использовать и в дальнейшем при возникновении глюков. При твоём подходе придётся всё время работать руками. А как известно, прямоходящие один раз хорошо думают, зато потом не напрягаются :-) а в этом руками работать не придется? чуть проще, но все равно каждый раз. в таком случае есть решение еще проще: у админов/модераторов внизу есть кнопка "Пересортировать тему" - она проблему лечит, говорят. ну а когда надоест нажимать кнопку: NOTE: Be sure to make a backup of the /Sources/Topic.pm file. Replace this code in /Sources/Topic.pm: my $total_posts = $db->query( TABLE => 'forum_posts',DBID => 'f'.$obj->{'.forum_id'},ID => $obj->{'.topic_id'},WHERE => "TOPIC_ID == '$obj->{'.topic_id'}' and QUEUED != '1'",RANGE => $First.' to '.($iB::INFO->{'DISPLAY_MAX_POSTS'} + ($First - 1)),SORT_KEY => 'POST_DATE',SORT_BY => $sort_by); with this: my $Firstt = ($First + 1);my $total_posts = $db->query( TABLE => 'forum_posts',DBID => 'f'.$obj->{'.forum_id'},ID => $obj->{'.topic_id'},WHERE => "TOPIC_ID == '$obj->{'.topic_id'}' and QUEUED != '1'",RANGE => $Firstt.' to '.($iB::INFO->{'DISPLAY_MAX_POSTS'} + ($Firstt - 1)),SORT_KEY => 'POST_DATE',SORT_BY => $sort_by); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CyberDem0n Опубликовано 9 сентября, 2004 Поделиться Опубликовано 9 сентября, 2004 костыли к костылям... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
rus Опубликовано 9 сентября, 2004 Поделиться Опубликовано 9 сентября, 2004 Ага, вроде "пересортировать тему" помогло - в "Свежих новостях" глюка больше нет. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.