Как изменить сортировку ответов в теме?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Как сортировать ответы в теме по дате по возрастанию?

#1 17 сентября 2012 в 00:35
Доброго всем времени суток. Озадачился таким вопросом: мне необходимо сделать, чтобы ответы в теме на форуме сортировались по дате от нового до старого, чтобы свежие ответы шли сначала.

Пробовал в \components\forum\frontend.php в запрос
  1. $sql = "SELECT t.*, f.title as forum, f.id as fid, f.NSLeft as forum_left, f.NSRight as forum_right, f.access_list
  2. FROM cms_forum_threads t
  3. INNER JOIN cms_forums f ON f.id = t.forum_id
  4. WHERE t.id = '$id' LIMIT 1";
добавлять
  1. ORDER BY t.pubdate ASC
но появляется 404 ошибка и много другого интересного smile.

Подскажите, может я неправильно формулирую запрос на сортировку из базы? И как это сделать правильно?
#2 17 сентября 2012 в 00:58
Не там делаеш. Чуть ниже 507 строка, в запросе измени ASC на DESC
  1.  
  2. $psql = "SELECT p.*, u.id as uid, u.nickname author, u.login author_login, u.is_deleted deleted, up.imageurl imageurl, up.signature signature
  3. FROM cms_forum_posts p
  4. LEFT JOIN cms_users u ON u.id = p.user_id
  5. LEFT JOIN cms_user_profiles up ON up.user_id = u.id
  6. WHERE p.thread_id = '$id'
  7. ORDER BY p.pubdate DESC
  8. LIMIT ".(($page-1)*$perpage).", $perpage";
---------------------------------------------------------------------------------
А поменять сортировку созданных тем :
Строка 333 — DESC свежие вверху, ASC старые вверху.
  1. $tsql = "SELECT t.*, COUNT(p.id) as postsnum, IF(t.pubdate > '$logdate', 1, 0) as is_new, u.nickname, u.login
  2. FROM cms_forum_threads t
  3. INNER JOIN cms_forum_posts p ON p.thread_id = t.id
  4. LEFT JOIN cms_users u ON u.id = t.user_id
  5. WHERE t.forum_id = '{$f['id']}'
  6. GROUP BY t.id
  7. ORDER BY t.pinned DESC, t.pubdate DESC
  8. LIMIT ".(($page-1)*$perpage).", $perpage";
#3 17 сентября 2012 в 01:46
Спасибо, то что надо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.