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

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


     16.02.2015    MySQL    1173

вопрос
Здравствуйте. Собственно нужно получить список идентификаторов родителей текущей статьи или подкатегории.
Решил получить значения выборкой отдельным запросом, но почему то на выходе пустота, хотя в 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
5

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

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

karnas
5

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;}

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

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