Получение и отображение категорий и подсчет их детей - PullRequest
1 голос
/ 04 сентября 2011

Я использую PHP через Codeigniter для этого сценария.

Это базовый список категорий, в котором есть элементы, назначенные этим категориям.У меня проблемы с отображением количества элементов рядом с именами категорий на странице списка категорий.

Как я это делал, я думаю, это было очень неэффективно, и мне бы очень хотелось знать, чтобыть обычной практикой для такого рода вещей.

Итак, я получал список категорий в моем контроллере, а затем, на мой взгляд, в цикле по категориям я вызываю метод модели, чтобы получить счетчик соответствующего cat_id на каждой итерации.(ужас!)

Должен ли я быть:

A) Получение категорий И их количество элементов из 1 оператора SQL

ИЛИ

B) Обработкасписок категорий в контроллере и получение соответствующего количества элементов в контроллере

Если да, то как?

1 Ответ

4 голосов
/ 04 сентября 2011

Я бы предпочел иметь один запрос со всем, что мне нужно, если ваш дизайн БД позволяет это сделать.

Предполагая, что у вас есть таблица категорий и таблица продуктов, вы должны иметь возможность сделать что-то вроде этого:

Select C.Category, Count(P.Id) as ProductsCount 
From Categories C left join Products P on C.Id = P.Category_Id
Group by C.Category    
Order by C.Category
...