2013-05-09 83 views
-4

我正在分類廣告網站上工作,並且我有關於檢索搜索結果的問題。如何使用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

回答

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

+1 - 良好,快速響應,而'LEFT JOIN'對於計算零產品類別非常有用。 – 2013-05-09 20:59:49

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 

這將讓你所有的類別名稱,以及每個名稱的分類未結束的計數。

相關問題