Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Изменение вывода в облаке тегов

Изменение вывода в облаке тегов


     16.06.2014    Все вопросы » MySQL    2433

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

Знаний маловато( делаю так, но ничего не получается, тупо выводятся последние добавленные теги
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY news_id DESC LIMIT 0,3");

Нужна помощь спецов.. Буду очень благодарен за помощь в решении сей нужды)

Ответа пока нет


11 комментариев

shadow6630
Юзер

shadow6630 - 16 июня 2014 21:50 -

Попробуйте так: найти
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,{$config['tags_number']}");
заменить на
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags ORDER BY news_id DESC LIMIT 0,{$config['tags_number']}");
и найти
        if ( preg_match( "#\\{tags limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
            $limit= true;
            $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,".intval($matches[1]);

        } else $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag";
и заменить на
        if ( preg_match( "#\\{tags limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
            $limit= true;
            $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags ORDER BY news_id DESC LIMIT 0,".intval($matches[1]);

        } else $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags ORDER BY news_id DESC ";

psarovskiy
Юзер

psarovskiy - 16 июня 2014 22:35 -

судя по вашему примеру - не будет происходить группировки(((( к сожалению

D0Gmatist
Юзер

D0Gmatist - 16 июня 2014 23:26 -

перебор с вашим кодом ...
сортировку вывода тегов по news_id это значит что тупо нужно изменить алгаритм уже имеющегося запроса в БД который выводит данную инфу

shadow6630
Юзер

shadow6630 - 16 июня 2014 22:42 -

ну так вам же нужна сортировка по дате добавления

psarovskiy
Юзер

psarovskiy - 16 июня 2014 22:52 -

по вашему методу, просто выведет какой-то тег, скорее всего последний, и все новости к нему прилепит((

psarovskiy
Юзер

psarovskiy - 16 июня 2014 22:54 -

попробовал, так и есть, вывело один тег и к нему прилепились все новости

lutskboy
Эксперт

lutskboy - 17 июня 2014 11:59 -

по идеи у вас автор и есть правильный запрос

lutskboy
Эксперт

lutskboy - 17 июня 2014 12:05 -

так и есть. только что проверил.

psarovskiy
Юзер

psarovskiy - 17 июня 2014 12:10 -

странно, у меня просто выводит последние три тега(((

lutskboy
Эксперт

lutskboy - 17 июня 2014 12:14 -

Цитата: psarovskiy
странно, у меня просто выводит последние три тега(((

Лол. так у вас и написано выводить последних три тега. LIMIT 0,3

psarovskiy
Юзер

psarovskiy - 17 июня 2014 12:59 -

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 06.09.2013 pro-erex  MySQL
наверх