Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) MySQL Изменение вывода в облаке тегов

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


     16.06.2014    MySQL    1210

вопрос
Всем добрый вечер. Возникла необходимость изменить сортировку вывода тегов в облаке тегов.
Нужно вывести теги с сортировкой по 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
6

131 | 55

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
37 | 13

psarovskiy - 16 июня 2014 22:35 - Юзер

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

D0Gmatist
225

794 | 281

D0Gmatist - 16 июня 2014 23:26 - Местный

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

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

shadow6630
6

131 | 55

shadow6630 - 16 июня 2014 22:42 - Юзер

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

psarovskiy
37 | 13

psarovskiy - 16 июня 2014 22:52 - Юзер

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

psarovskiy
37 | 13

psarovskiy - 16 июня 2014 22:54 - Юзер

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

lutskboy
3

547 | 103

lutskboy - 17 июня 2014 11:59 - Юзер

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

lutskboy
3

547 | 103

lutskboy - 17 июня 2014 12:05 - Юзер

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

psarovskiy
37 | 13

psarovskiy - 17 июня 2014 12:10 - Юзер

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

lutskboy
3

547 | 103

lutskboy - 17 июня 2014 12:14 - Юзер

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

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

psarovskiy
37 | 13

psarovskiy - 17 июня 2014 12:59 - Юзер

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

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

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

 06.09.2013 pro-erex  MySQL