Перейти к контенту

Мод статуса


Рекомендуемые сообщения

После установки мода отображения статуса пользователя (на форуме / нет его) в темах перестали выводиться посты (т.е только шапка таблицы постов и нижняя часть). Опытным путём установил, что глюк происходит в той части мода, где идёт обращение к базе. Оно каким-то образом затирает выборку постов?

online.zip

Ссылка на комментарий
Поделиться на других сайтах

Опытным путём установил, что глюк происходит в той части мода, где идёт обращение к базе.

!!!

Это так и есть, когда идёт конструкция вида

$DB->query('SELECT * FROM blablabla...');
while ($row = $DB->fetch_row())
{
...
$DB->query('SELECT smth FROM smwhere...');
...
}

вторая квери затирает результаты первой - а по этой самой первой ещё нужно закончить цикл while! (Циклу каюк.)

 

Это можно, в принципе, исправить, приведя конструкцию к виду:

$query = $DB->query('SELECT * FROM blablabla...');
while ($row = $DB->fetch_row($query))
{
...
$DB->query('SELECT smth FROM smwhere...');
...
}

Но! Рекомендую поставить лучше нормальный мод онлайн-оффлайна с mods.invisionize.com. Там по слову Offline этих модов дофига!

А тот, который ты ставишь, неоптимальный, он будет базу зря грузить.

Ссылка на комментарий
Поделиться на других сайтах

Может просто в скине затёр вывод текста поста?

Что до результатов квери, нужно изменить запрос так, чтобы инфа одним запросом сразу же бралась из обоих таблиц (ibf_posts и ibf_sessions) тогда вложенные запросы не понадобятся и соответственно не будет траблы с результатом.

Ссылка на комментарий
Поделиться на других сайтах

Может просто в скине затёр вывод текста поста?
Нет, все на месте.

 

Что до результатов квери, нужно изменить запрос так, чтобы инфа одним запросом сразу же бралась из обоих таблиц (ibf_posts и ibf_sessions) тогда вложенные запросы не понадобятся и соответственно не будет траблы с результатом.
Можно пример?

 

Скачал с mods.invisionize.com несколько модов. Попробую поставить, потом поделюсь впечатлениями.

Ссылка на комментарий
Поделиться на других сайтах

Поставил Image/Text Online/Offline Mod v3.5 от Shadow Fox. На первый взгляд, вполне прилично. Делает один дополнительный запрос к БД на одну загрузку страницу, довольно быстрый (без мода время генерации тестовой страницы на локалхосте 0.2118, с включенным модом — 0.2207).

 

Полностью настраивается из админки. Можно разве что русифицировать, ну и лишние параметры поубирать.

 

Кто-нибудь может об этом моде сказать что-нибудь плохое или хорошее? :D

IATOOM.zip

Ссылка на комментарий
Поделиться на других сайтах

нужно изменить запрос так, чтобы инфа одним запросом сразу же бралась из обоих таблиц (ibf_posts и ibf_sessions) тогда вложенные запросы не понадобятся

Song, ты чему человека учишь?? Привыкнет сейчас так делать, а потом будет удивляться, почему script execution time 30 секунд...

 

Dr.Freddy

Кто-нибудь может об этом моде сказать что-нибудь плохое или хорошее?

Мод включён в сборку Русский модифицированный IPB 1.3, работает на всех таких бордах.

Ссылка на комментарий
Поделиться на других сайтах

theIggs

Song, ты чему человека учишь?? Привыкнет сейчас так делать, а потом будет удивляться, почему script execution time 30 секунд...
Это ж сколько запросов надо сделать-то? :D Самое жуткое, что я видел, не помню где — 62 квери на страницу. Генерации примерно пять секунд. ;)

 

Мод включён в сборку Русский модифицированный IPB 1.3, работает на всех таких бордах.
Вот и отлично. Оставлю его, переделаю только. Впрочем, уже переделал. :)
Ссылка на комментарий
Поделиться на других сайтах

theIggs LEFT JOIN - это самое быстрое средство в MySQL'е. Наоборот с джойном запрос оптимизируется. Тем более что ibf_sessions это сравнительно небольшая таблица, поэтому её можно джойнить без проблем.
Ссылка на комментарий
Поделиться на других сайтах

Это ж сколько запросов надо сделать-то?

Я тоже в детстве думал, что чем меньше запросов - тем лучше. А потом меня грубо ткнули носом... с тех пор я умнее. :D

 

LEFT JOIN - это самое быстрое средство в MySQL'е.

Быстрее, чем простой SELECT * FROM ibf_sessions? Не будем дискутировать на эту тему. Сам метод "соединить всё в один запрос" - очень спорный.

Ссылка на комментарий
Поделиться на других сайтах

Игс, действительно не будем дескутировать здесь :D

Ты лучше приходи на форум, который у меня в подписи, там тебе расскажут про этот вопрос профессионально.

Добавлено в [mergetime]1089994253[/mergetime]

ыстрее, чем простой SELECT * FROM ibf_sessions?

ИМЕННО. MySQL чтоб ты знал не оптимизирован для последовательного линейного чтения данных. SQL оптимизирован для чтения выборкой.

Ссылка на комментарий
Поделиться на других сайтах

Я тоже в детстве думал, что чем меньше запросов - тем лучше. А потом меня грубо ткнули носом... с тех пор я умнее.
O'кей. Извините ребенка.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.