Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Вывод полей из xflist из определенных категорий?

Вывод полей из xflist из определенных категорий?


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

вопрос
День добрый. Встал вопрос о том, чтобы выводить информацию из xflist только из определенных категорий.
Как это можно сделать?

Ответил: Aleksey-Nyaka



            $word_serch = $db->query("SELECT id, xfields FROM " . USERPREFIX . "_post WHERE category IN (3,4,29,5,14,15,17,6,27,21,30,26)");


Где: 3,4,29,5,14,15,17,6,27,21,30,26 это id нужных категорий.

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

ravchik
Юзер

ravchik - 26 января 2015 20:06 -

скачать модуль (хак) и немножко доработать.

serg91100
Юзер

serg91100 - 26 января 2015 20:15 -

Я его оставил давно. Но я не программист. Есть идеи как сделать?

ravchik
Юзер

ravchik - 26 января 2015 22:26 -

найти
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1" );
заменить на
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1 AND category={$catid}" );
а строка подключения будет
{include file="/engine/modules/xflist.php?xfname=fieldname&catid=x"}
где x - id категории. Если надо из нескольких категорий, смотрите ответ Aleksey-Nyaka, т.е.
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1 AND category IN ({$catid})" );
строка подключения будет
{include file="/engine/modules/xflist.php?xfname=fieldname&catid=x,y,z"}


сам не проверял, но должно работать

D0Gmatist
Юзер

D0Gmatist - 26 января 2015 23:51 -

Уж лучше бы просто сделали доп условие )) Чтоб полностью сделать функциональным
1) Проверяем есть ли $catid
if ( $catid != "" ) {
    $cat_select = " AND"; // приставку к условию
    // проверяем одно число категории или несколько
    if ( count( explode( ",", $catid ) ) == 1 ) {
        $cat_select .= " `category` = '$catid'";
    } else {
        $cat_select .= " `category` IN ('$catid')";
    }
}

2)
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1{$cat_select}" );

Chigivara
Юзер

Chigivara - 8 июня 2021 07:39 -

Добрый день.ravchik,ваш код к сожалению не совсем корректно работает. Если не прописать catid, будет ошибка. Если прописать catid=1-9, не выведет ничего. Работает только в таком виде catid=1,3,6. Что не совсем удобно
D0Gmatist, написал код с условием, ну не до конца разъяснил куда его заменять, или это дополнительное условие к изначальному коду или дополнение к коду ravchik. Как выводить ?
{include file="/engine/modules/xflist.php?xfname=fieldname&cat_select=x,y,z"}
или
{include file="/engine/modules/xflist.php?xfname=fieldname&catid=x,y,z"}
Можно поподробней пожалуйста

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

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

наверх