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

问题描述:

我正在分类广告网站上工作,并且我有关于检索搜索结果的问题。如何使用PHP和MySql显示来自不同类别的搜索结果

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

例如:

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

什么是让这些计数的理想方式MySql数据库表?

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

感谢

UPDATE:

我还没有创建MySQL表还,所以如果它在计数了很大的作用随意推荐理想的结构。

+1

等待,你有每个类别单独的表? – 2013-05-09 20:52:43

+0

其实,还没有创建数据库:)我会更新问题 – 2013-05-09 20:54:22

+0

我应该写整个网站,让咖啡? – 2013-05-09 20:56:13

我宁愿有这种需求的一个查询。

假设你有一个分类表和未分类的说产品,你应该能够做这样的事情:

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 
+0

+1 - 良好,快速响应,而'LEFT JOIN'对于计算零产品类别非常有用。 – 2013-05-09 20:59:49

你可以做一个简单的查询使用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 

这将让你所有的类别名称,以及每个名称的分类未结束的计数。