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

Как организовать систему вывода избранных новостей в профиле?


     17.10.2016    Общие вопросы по PHP, Модули, Хаки    302

вопрос
Всем привет. Пытаюсь реализовать вывод избранных новостей в профиле, набросал некий код.
Выводиться не более 1 статьи. Как решить данную проблему ?



    $sql_favorite = $db->super_query("SELECT favorites  FROM " . USERPREFIX . "_users WHERE name = '{$_GET['user']}'");

    $list = explode( ",", $sql_favorite['favorites'] );
    $list = array_reverse ( $list );
    $fav_list = array();
    $order_list = array();

    foreach ( $list as $daten ) {
        $daten = intval($daten);
        $fav_list[] = "'" . $daten . "'";
        $order_list[] = $daten;
    }

    $list = implode( ",", $fav_list );

    $favorites = "(" . $list . ")";

    if( count($order_list) ) {

        $order_list = implode( ",", $order_list );
        $order_list = "ORDER BY FIND_IN_SET(id, '".$order_list."') ";

    } else $order_list = "";

    $sql_select_favorite = $db->query("SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}id in $favorites " .$order_list);
    $i = 0;
    while ( $row_s = $db->get_row($sql_select_favorite) ) {
        $i ++;
        $episode = "<a href=\"\" class=\"favorite-show-link\"><img src=\"\">{$row_s['title']}</a>";
    }

    $tpl->set( '{favuser}', $episode );

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


Комментарии пользователей (11)

lutskboy
3

579 | 105

lutskboy - 17 октября 2016 15:52 - Юзер

что то тут не понятно
ORDER BY FIND_IN_SET

может WHERE FIND_IN_SET

а если вы хотите сортировать по мере их добавления то ORDER BY FIELD(field_name, 3,2,5,7,8,1)

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 15:53 - Юзер

Выводиться 1 новость. Читайте внимательней.

lutskboy
3

579 | 105

lutskboy - 17 октября 2016 15:57 - Юзер

как сам запрос выглядит. в логах посмотрите. если на локалхосте

или

echo "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}id in $favorites " .$order_list;


глянем что там у вас

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 15:59 - Юзер

Просмотрите КОД еще раз. Причем тут сортировка, если выводиться из базы только 1 запись!
Удалял сортировку, толку 0.

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 16:05 - Юзер

Запрос верный, выводит массив новостей которые у меня в избранных.

lutskboy
3

579 | 105

lutskboy - 17 октября 2016 16:07 - Юзер

тогда с шаблонизатором не то

тут цикл. где вы подключаете шаблон тпл

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 16:12 - Юзер

    while ( $row_s = $db->get_row($sql_select_favorite) ) {

        $episode = "<a href=\"\" class=\"favorite-show-link\"><img src=\"\">{$row_s['title']}</a>";
        $i ++;
    }


Тут ковырять ?

lutskboy
3

579 | 105

lutskboy - 17 октября 2016 16:17 - Юзер

ну для начала вы б написали куда етот код вставляете.
он у вас отдельным файлом идет или в profile.php

$tpl->set( '{favuser}', $episode );

после
$episode = "<a href=\"\" class=\"favorite-show-link\"><img src=\"\">{$row_s['title']}</a>";


или $episode .=

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 16:31 - Юзер

    while ( $row_s = $db->get_row($sql_select_favorite) ) {
        $i ++;
        $episode = "<a href=\"\" class=\"favorite-show-link\"><img src=\"\">{$row_s['title']}</a>";


    }
    $tpl->set( '{favuser}', $episode );


Делаю все в profile.php

lutskboy
3

579 | 105

lutskboy - 17 октября 2016 16:33 - Юзер

исправте на $episode .=

fanaticus
4

59 | 7

fanaticus - 17 октября 2016 16:37 - Юзер

Спасибо. Заработало))

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

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