Регистрация    Забыли пароль?        Правила форума    FAQ (читать перед созданием новой темы)
Имя   Пароль  запомнить
  
Просмотр темы
Вернуться на сайт: PHP-Fusion SF Russian Support Site

Форум поддержки PHP-Fusion SF | PHP-Fusion SF - Моды/Плагины | Моды/Mods
# 1 Тема: минус 1 запрос на форуме
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 18 Апреля 2010, 17:57:16
Нашел способ убрать 1 запрос в БД на форуме на странице viewforum.php
Вобщем открываем файл в блокноте и ридактируем...

Находим
if ($rowstart == 0) {
.......
}

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

далее ищем if ($rows != 0) {

там есть запрос

$result = dbquery(
"SELECT t.*, COUNT(p.post_id) AS thread_replies, tu1.user_name AS user_author, tu2.user_name AS user_lastuser, tp.poll_id FROM ".$db_prefix."threads t
LEFT JOIN ".$db_prefix."posts p USING(thread_id)
LEFT JOIN ".$db_prefix."users tu1 ON t.thread_author = tu1.user_id
LEFT JOIN ".$db_prefix."users tu2 ON t.thread_lastuser = tu2.user_id
LEFT JOIN ".$db_prefix."forum_thread_polls tp ON t.thread_id = tp.thread_id
WHERE t.forum_id='$forum_id' AND thread_sticky='0' GROUP BY thread_id ORDER BY thread_lastpost DESC LIMIT $rowstart,20"
);


меняем его на

$result = dbquery(
"SELECT t.*, COUNT(p.post_id) AS thread_replies, tu1.user_name AS user_author, tu2.user_name AS user_lastuser, tp.poll_id FROM ".$db_prefix."threads t
LEFT JOIN ".$db_prefix."posts p USING(thread_id)
LEFT JOIN ".$db_prefix."users tu1 ON t.thread_author = tu1.user_id
LEFT JOIN ".$db_prefix."users tu2 ON t.thread_lastuser = tu2.user_id
LEFT JOIN ".$db_prefix."forum_thread_polls tp ON t.thread_id = tp.thread_id
WHERE t.forum_id='$forum_id' GROUP BY thread_id ORDER BY thread_sticky DESC, thread_lastpost DESC LIMIT $rowstart,20"
);


обратите внимание на выделенное, это то что поменялось...


далее перед $threadsubject</td> надо вставить

".($data['thread_sticky'] == 1 ? "<img src='".THEME."forum/stickythread.gif' alt='".$locale['560']."' style='vertical-align:middle;'>" : "")."


Еще есть строка if ($threadcount == 0) {, её надо заменить на if ($numrows == 0) {


В этом случае пропадет таблица со строкой "темы форума", поэтому если наличие этой строки для вас критично, то гуляем мимо....

Фишка в том что сейчас есть 2 функции, одна выводит прикрепленные темы, а вторая - простые...в моем случае мы объеденили 2 функции в одну, а потом выводим сначала важные(прикрепленные) темы, а потом простые...сортировка по дате сохранена...


[Изменил(а) pozitiv, 18 Апреля 2010, 18:06:17]

--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
Перейти на форум:


105,445,170 уникальных посетителей
сейчас: 22 Ноября 2024, 00:49:11
Генерация страницы: 0.07 сек.

Original size:14 кб.
GZipped size: 5 кб.
Compression:62%