Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-10-26 14:19:44

Dayset
Гость

Пустые странички в форуме

Возникла такая фигня:
Развивается тема 1-2-3-4 страничка, и растет дальше... на днях появилась 8ая, захожу посмотреть что новенького написали -пусто. Постов на 8ой страничке вообще нет. 7ая есть все нормально. Если набить 7ую чтобы она "перевалила" на 8 -8 будет заполнена. И все как должно быть. Вобщем пун считает что страниц 8 хотя на самом деле их 7. Попробовал перестроить индекс -нифига. Вобщем-то не мешает, но странно как-то, продолжаю искать причины. Еще скрин прилепил чтобы понятнее было о чем я.

Удалил несколько постов(3шт) на 7ой -8ая пропала, вобщем какой то счетчит внутри сьехал - как бы так посмотреть где он вообще и поправить если что (Хорошо бы если только на эту тему и как зараза не расползлась)

Редактировался Dayset (2007-10-26 14:22:13)

#2 2007-10-29 16:05:01

Дачник
Гость

Re: Пустые странички в форуме

Dayset
Такая же хрень бывает

#3 2007-10-30 11:46:24

Slavik
Гость

Re: Пустые странички в форуме

После удаления постов желательно воспользоваться плагином Forum cleanup: Synchronise topic reply counts.

#4 2007-11-01 20:06:44

Dayset
Гость

Re: Пустые странички в форуме

Клинап переодически делаю -раза 2 в неделю, хмм даже и не вспомню - делал тогда или только индекс перестраивать зарядил.

#5 2007-11-24 15:27:58

d-linux
Гость

Re: Пустые странички в форуме

Аналогичная проблема возникла в топике где более 200 страниц.
Решение на punbb.org не нашел - хотя тема подымалась.
Похоже, что неправильно работает механизм определения количества страниц.

#6 2007-11-24 16:08:01

artoodetoo
Гость

Re: Пустые странички в форуме

механизм подсчета количества страниц полагается на счетчик в поле topics.num_replies

$num_pages = ceil(($cur_topic['num_replies'] + 1) / $pun_user['disp_posts']);

счетчик может сбиться после какого-то облома, но он заново вычисляется (!!!) после каждого добавления в тему
и после каждого удаления из темы.
типа вот так:

SELECT COUNT(id) FROM '.$db->prefix.'posts WHERE topic_id='.$topic_id

если похерится индекс в таблице topics то, наверное, запрос может наврать, но при таком раскладе мы и в самой теме потеряем сообщения sad мы их не увидим во viewtopic, потому что сами посты добывается по такому же условию topic_id=###

то есть мы снова получим "реальное" количество страниц...
шайтан!!!
а может это проблема родственная "раздвоению постов" и "посетителей" - когда один пользователь виден online в двух экземплярах и посты его двоятся в этот момент, в такой момент счетчик не соответствует тому что видишь...

#7 2007-11-26 10:06:38

d-linux
Гость

Re: Пустые странички в форуме

Может проблема в DB, точнее в типе таблиц MyISAM. Может есть смысл использовать InnoDB + транзакции?

Не помогло.

Редактировался d-linux (2007-11-28 11:19:33)

#8 2007-11-29 11:05:24

d-linux
Гость

Re: Пустые странички в форуме

Похоже проблема в этом запросе:

mysql> SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM posts AS p INNER JOIN users AS u ON u.id=p.poster_id INNER JOIN groups AS g ON g.g_id=u.group_id LEFT JOIN online AS o ON (o.user_id=u.id AND o.idle=0) WHERE p.topic_id=611 ORDER BY p.id LIMIT 7400,50;
Empty set (0.26 sec)

Отсюда и пустая страница.

Тот же запрос для проверки в упрощенном виде дает другие результаты:

select id from posts where topic_id='611' limit 7400,50;
+--------+
| id     |
+--------+
| 104272 |
| 104285 |
| 104290 |
| 104291 |
+--------+
4 rows in set (0.00 sec)

Кто*нибудь может понять почему в верхнем запросе пропадают посты?

Помогло изменение INNER JOIN на LEFT JOIN - хотя я не знаю, на сколько это корректно в этом запросе.

Редактировался d-linux (2007-11-29 11:37:17)

#9 2007-11-29 11:39:15

artoodetoo
Гость

Re: Пустые странички в форуме

попробуй для эксперимента заменить INNER JOIN на LEFT JOIN сначала для users, затем для groups.
судя по всему, проблема в отсутствии записи там или там.

#10 2007-11-29 11:44:54

d-linux
Гость

Re: Пустые странички в форуме

artoodetoo пишет:

попробуй для эксперимента заменить INNER JOIN на LEFT JOIN сначала для users, затем для groups.
судя по всему, проблема в отсутствии записи там или там.

Если только для users или только для groups LEFT JOIN то пустые страницы, когда для users и groups одновременно LEFT то все ок.

Редактировался d-linux (2007-11-29 11:46:48)

#11 2007-11-29 12:32:38

artoodetoo
Гость

Re: Пустые странички в форуме

какой-то юзер некорректно удален?
принадлежащие ему посты не удалены и не помечены как сообщения гостя - когда все штатно делается, то делается одно из двух, а тут похоже сбой. осталось вычислить эти записи

#12 2007-11-29 12:50:09

d-linux
Гость

Re: Пустые странички в форуме

artoodetoo пишет:

какой-то юзер некорректно удален?
принадлежащие ему посты не удалены и не помечены как сообщения гостя - когда все штатно делается, то делается одно из двух, а тут похоже сбой. осталось вычислить эти записи

Похоже вот этот запрос показывает удаленных пользователей, у которых остались сообщения:

SELECT p.id,p.topic_id, p.poster AS username, p.poster_id  FROM posts AS p LEFT JOIN users AS u ON u.id=p.poster_id  WHERE u.id IS NULL;

результат у меня

+-------+----------+---------------------------------+-----------+
| id    | topic_id | username                        | poster_id |
+-------+----------+---------------------------------+-----------+
| 57675 |     3551 | blink                           |      1068 |
| 57740 |     3552 | Psychild                        |      1070 |
| 58193 |      122 | Anonymous                       |      1077 |
| 58214 |      122 | Anonymous                       |      1077 |
| 58227 |      122 | Anonymous                       |      1077 |
| 58246 |      122 | Anonymous                       |      1077 |
| 58254 |      122 | Anonymous                       |      1077 |
| 58661 |      122 | Anonymous                       |      1077 |
| 58768 |      122 | Anonymous                       |      1077 |
| 59003 |      122 | Anonymous                       |      1077 |
| 59123 |      122 | Anonymous                       |      1077 |
| 59127 |      122 | Anonymous                       |      1077 |
| 59132 |      122 | Anonymous                       |      1077 |
| 60185 |      122 | Anonymous                       |      1077 |
| 60319 |      122 | Anonymous                       |      1077 |
| 63998 |     3707 | emokid                          |      1112 |
| 64256 |     3707 | emokid                          |      1112 |
| 64259 |     3707 | emokid                          |      1112 |
| 64561 |     3707 | emokid                          |      1112 |
| 64564 |     3707 | emokid                          |      1112 |
| 64851 |     3707 | emokid                          |      1112 |
| 64859 |     3707 | emokid                          |      1112 |
| 64861 |     3707 | emokid                          |      1112 |
| 65006 |     3137 | Shut                            |       973 |
| 67708 |      611 | Печенюшка              |      1149 |
| 67711 |      611 | Печенюшка              |      1149 |
| 81525 |      611 | Shinoda                         |      1274 |
| 82971 |      611 | Брутальная СаМка |      1301 |
| 83324 |     4306 | skyll                           |      1309 |
| 85537 |     4370 | Romantik                        |      1351 |
| 86028 |     4370 | Romantik                        |      1351 |
+-------+----------+---------------------------------+-----------+
31 rows in set (0.48 sec)

Все юзеры удаленные - инфы по ним нет.

Удалил все их сообщения, вернул INNER JOIN - посмотрим что будет дальше.

Редактировался d-linux (2007-11-29 13:05:11)

#13 2008-06-07 16:14:58

nobody
Гость

Re: Пустые странички в форуме

Dayset пишет:

Возникла такая фигня:
Развивается тема 1-2-3-4 страничка, и растет дальше... на днях появилась 8ая, захожу посмотреть что новенького написали -пусто. Постов на 8ой страничке вообще нет. 7ая есть все нормально. Если набить 7ую чтобы она "перевалила" на 8 -8 будет заполнена. И все как должно быть. Вобщем пун считает что страниц 8 хотя на самом деле их 7. Попробовал перестроить индекс -нифига. Вобщем-то не мешает, но странно как-то, продолжаю искать причины.

Столкнулся с такой же проблемой, причем косяк выскакивает только в определенных темах. Никакой закономерности не нашел. Dayset, ты не нашел решения проблемы?

#14 2008-06-08 16:56:15

hcs
Гость

Re: Пустые странички в форуме

Чистка форума, Forum cleanup

#15 2008-06-08 21:05:33

nobody
Гость

Re: Пустые странички в форуме

Да, как оказалось помогает. Хотя, судя по 4-му сообщению, Dayset'у не помогло.

#16 2008-06-09 11:50:27

d-linux
Гость

Re: Пустые странички в форуме

После Пустые странички в форуме всё исправилось.

Подвал доски

Под управлением FluxBB. Хостинг Hostens