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

Получить кол-во товаров во всех категориях


Recommended Posts

Доброе время суток господа, очень нужна помощь

необходимо создать список категорий с кол-во товаров в них причем при кешировании это должен быть один файл кеша...  проблема с последним условием.

мои мысли

 

$results = $this->model_product_category->getCategories();

        $filter_data = array(
            'filter_category_id' => $result['product_category_id'],
        );        
         
        $total_products = $this->model_catalog_product->getTotalProducts($filter_data);

}

 

Это дело все работает, но есть НО( в модели оно кешируется кучей файлов, так как  $total_products  дергается по всем категориям... нужно создать один файл кеша в котором были бы пары category_id = 34; product_total = 5; и тд

 

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

Добрый день.

 

Надо делать свой запрос в модели.

Что-то вроде этого:

SELECT c.category_id, COUNT(p2c.product_id) AS total FROM `category` c LEFT JOIN `product_to_category` p2c ON (c.category_id = p2c.category_id) GROUP BY c.category_id

И кэшировать уже результат этого запроса.

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

Ещё один вариант запроса:

SELECT c.category_id, (SELECT COUNT(*) FROM `product_to_category` p2c WHERE p2c.category_id = c.category_id) AS total FROM `category` c

Нет большой базы под рукой, чтобы проверить какой запрос будет быстрее.

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

При создании массива для кэширования, category_id лучше сделать индексом, а в значение писать количество товаров.

Чтобы сразу по индексу (category_id) из массива вытянуть количество товаров.

 

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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