检索和显示类别及其子项计数

时间:2011-09-04 06:08:50

标签: php sql codeigniter categories

我在这种情况下通过Codeigniter使用PHP。

这是一个基本类别列表,其中包含分配给这些类别的项目。我遇到的问题是在类别列表页面上的类别名称旁边显示项目计数。

我这样做是一种非常无效的方式,我想,我真的想知道这种事情的常见做法是什么。

所以我在控制器中获取了类别列表,然后在我的视图中,在循环中通过类别,我调用模型方法来获取每次迭代时相应cat_id的计数。 (恐怖!)

我应该是:

A)从1个SQL语句中获取类别及其项目数

OR

B)处理控制器中的类别列表,并在控制器中获取类别的相应项目计数

若然,怎么办?

1 个答案:

答案 0 :(得分:4)

如果您的数据库设计允许这样做,我宁愿对我需要的所有内容进行一次查询。

假设您有一个Categories表和一个Products表,您应该可以执行以下操作:

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