如何使用PHP和MySql显示来自不同类别的搜索结果
问题描述:
我正在分类广告网站上工作,并且我有关于检索搜索结果的问题。如何使用PHP和MySql显示来自不同类别的搜索结果
我的目标是显示分类名称旁边的每个分类的分类数量。
例如:
- 红色汽车(821)
- Android手机(291)
- 笔记本电脑(929)
什么是让这些计数的理想方式MySql数据库表?
它是写一个查询到数据库中的每个表?这对一个访问者来说意味着很多查询,并且可能会导致性能问题?
感谢
UPDATE:
我还没有创建MySQL表还,所以如果它在计数了很大的作用随意推荐理想的结构。
答
我宁愿有这种需求的一个查询。
假设你有一个分类表和未分类的说产品,你应该能够做这样的事情:
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
这将让你所有的类别名称,以及每个名称的分类未结束的计数。
等待,你有每个类别单独的表? – 2013-05-09 20:52:43
其实,还没有创建数据库:)我会更新问题 – 2013-05-09 20:54:22
我应该写整个网站,让咖啡? – 2013-05-09 20:56:13