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

Как узнать parentid новости или подкатегории?


     16.02.2015    Все вопросы » MySQL    2690

вопрос
Здравствуйте. Собственно нужно получить список идентификаторов родителей текущей статьи или подкатегории.
Решил получить значения выборкой отдельным запросом, но почему то на выходе пустота, хотя в phpmyadmin запрос отрабатывает корректно.

global $category_id, $db;
$res = $db->query( "SELECT parentid FROM " . PREFIX . "_category WHERE id = $category_id" );
$spisok = '';
    foreach ( $res as $row ) {        
    $spisok .= $row['parentid'].'-';
        }
return $spisok;

Возможно это можно сделать штатными средствами dle без дополнительного запроса?.

Ответил: Sander


global $cat_info,$category_id;
return $cat_info[$category_id]['parentid'];


У подкатегории не может быть списка "родителей". У одной подкатегории может быть только одна родительская категория. А вот у категории уже может быть несколько дочерних подкатегорий.

2 комментария

karnas
Юзер

karnas - 16 февраля 2015 22:56 -

Не все так просто) Ну как это не может быть родителей у подкатегории... Корень/Категория1->Категория2->Категория3->Новость.html
Вот к примеру для Категория3 родителями являются Категория2 и Категория1. Вот мне и нужно узнать id основной категории (Категория1) находясь внутри Категория2 или Категория3 или Новость.html.

karnas
Юзер

karnas - 16 февраля 2015 23:51 -

В общем, сделал коряво, но работает.
    global $cat_info,$category_id;
    $cur_cat = $cat_info[$category_id]['parentid'];
    if($cur_cat != 0) {$cur_cat1 = $cat_info[$cur_cat]['parentid'];
    if($cur_cat1 != 0) {$cur_cat2 = $cat_info[$cur_cat1]['parentid'];
    if($cur_cat2 != 0) {$cur_cat3 = $cat_info[$cur_cat2]['parentid'];
    if($cur_cat3 == 0) {return $cur_cat2;}
    } else {return $cur_cat1;}
    } else {return $cur_cat;}
    } else {return $category_id;}

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

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

наверх