如何使用PHP和MySql显示来自不同类别的搜索结果

时间:2013-05-09 20:50:50

标签: php mysql search

我正在分类广告网站上工作,我有一个关于检索搜索结果的问题。

我的目标是在类别名称旁边显示每个类别中的分类数量。

例如:

  • 红车(821)
  • Android手机(291)
  • 笔记本电脑(929)

从MySql数据库表中获取这些计数的理想方法是什么?

是否要将一个查询写入数据库中的每个表?这对于一个访问者来说意味着很多查询,并且可能会导致性能问题?

由于

更新:

我还没有创建MySql表,所以如果它在计数中发挥重要作用,请随意推荐理想的结构。

2 个答案:

答案 0 :(得分:1)

我更希望有一个查询来满足这种需求。

假设你有一个分类表,并且没有分类产品说产品,你应该可以这样做:

    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

答案 1 :(得分:1)

您可以使用count(*)进行简单查询,并按类别ID /名称进行分组。

SELECT Categories.name, count(*) as cnt
FROM Categories
    LEFT JOIN Classifieds
        ON Classifieds.CategoryID=Categories.ID
WHERE Classifieds.EndDate > NOW()
GROUP BY Categories.name
ORDER BY Categories.name

这样可以获得所有类别名称以及分类尚未结束的每个名称的计数。

相关问题