Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Получить id первой родительской категории


Recommended Posts

Вопрос такой как на странице поиска получить самую первую родительскую категорию товара ? 

Целый день мучаюсь не могу получить id самой первой категории смог получить parent_id но эта категория на шаг выше а как быть если товар находиться в 10 категории но мне нужно получить 1 категорию ? 

 

пример :

 

products

        яблоки 

                 зеленые 

                        краснодарские

 

                                                 

Сами товары находятся в категории краснодарские !

 

Мне нужно получить id products !

Сам смог получить только parent_id  (зеленые)  !

Змінено користувачем Sabufer
Надіслати
Поділитися на інших сайтах


21 минуту назад, Sabufer сказал:

Как проверить пример ??

 

 

[#№] - пример id,

products [#1]

        яблоки [#2]

                 зеленые [#14] 

                        краснодарские [#19]

 

Берете ид "зеленый" и проверяете чей он... Тоесть из каталого, смотрим:

 

$parent_id = $this->query(SELECT `parent_id` FROM `oc_category` WHERE `category_id` = 14);

 

if ($parent_id) {

     .... дальше дальше дальше => $parent_id = $this->query(SELECT `parent_id` FROM `oc_category` WHERE `category_id` = сначало 2, потом уже 1);

ссылаемся на себя. (Смотрим что такое рекурсия)

} else {

    ....., а все мы уже вверху каталога

}

 

Надіслати
Поділитися на інших сайтах

20 минут назад, Eldaeron сказал:

 

 

[#№] - пример id,

products [#1]

        яблоки [#2]

                 зеленые [#14] 

                        краснодарские [#19]

 

Берете ид "зеленый" и проверяете чей он... Тоесть из каталого, смотрим:

 

$parent_id = $this->query(SELECT `parent_id` FROM `oc_category` WHERE `category_id` = 14);

 

if ($parent_id) {

     .... дальше дальше дальше => $parent_id = $this->query(SELECT `parent_id` FROM `oc_category` WHERE `category_id` = сначало 2, потом уже 1);

ссылаемся на себя. (Смотрим что такое рекурсия)

} else {

    ....., а все мы уже вверху каталога

}

 

$parent_id = $this->query(SELECT `parent_id` FROM `oc_category` WHERE `category_id` = 14);

почему 14 ??

Надіслати
Поділитися на інших сайтах


3 минуты назад, Sabufer сказал:

почему 14 ??

14 - это уже первый полученный parent_id

 

вообще если все правильно настроено то самая первая категория это первый элемент массива

 

$parts = explode('_', (string)$this->request->get['path']);

Надіслати
Поділитися на інших сайтах

Сам смысл получения данной id категории такой если товар относится к категории products то скрыть ему цену количество итд !!

Змінено користувачем Sabufer
Надіслати
Поділитися на інших сайтах


7 минут назад, Sabufer сказал:

Автомагазин запчастей пишем )

получите категории товара и проверяйте

 

$product_categories =  $this->model_catalog_product->getProductCategories($result['product_id']);

in_array('id категории где не надо', $product_categories)

 

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

Надіслати
Поділитися на інших сайтах

SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path
        FROM category_path cp
        LEFT JOIN category c1 ON (cp.path_id = c1.category_id)
        WHERE cp.category_id = " . (int)КАТЕГОРИЯ ТОВАРА . "
        GROUP BY cp.category_id

Затем разбор row['path']

Надіслати
Поділитися на інших сайтах

19 часов назад, chukcha сказал:

SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path
        FROM category_path cp
        LEFT JOIN category c1 ON (cp.path_id = c1.category_id)
        WHERE cp.category_id = " . (int)КАТЕГОРИЯ ТОВАРА . "
        GROUP BY cp.category_id

Затем разбор row['path']

делал по вашему не получается можно полностью решение с разбором path и правильно прописать sql запрос со знаками препинания !

Надіслати
Поділитися на інших сайтах


1 час назад, Sabufer сказал:

правильно прописать sql запрос со знаками препинания !

ага.. щаз....

Надіслати
Поділитися на інших сайтах

  • 1 year later...
  • 1 month later...
В 21.01.2020 в 21:35, comers сказал:

как это использовать?

Создайте нижеописанную функцию в файле /catalog/model/catalog/category.php

И используйте ее в нужных вам контроллерах.

	public function getProtoParent($category_id){
		$query = $this->db->query("SELECT path_id FROM " . DB_PREFIX . "category_path WHERE category_id = '" . (int)$category_id . "' AND level = 0");

		return $query->row['path_id'];
	}

 

  • +1 2
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.