2012-01-29 47 views
2

我在我的HTML代碼當前類別如下:列表類別與數量爲每個項目

<ul> 
    <li>Category 1: ($Count)</li> 
    <li>Category 2: ($Count)</li> 
    <li>Category 3: ($Count)</li> 
</ul> 

我想列出元素每個類別包含數的計數。我能得到一個類別的使用下面的SQL語法計數:

SELECT COUNT(element) FROM category WHERE cid = 1 

不過,我不知道如何綁定這件事在HTML代碼中的每個類別。

我只能想到另一種實現方式:通過將類別名稱存儲在數據庫中,使類別名稱爲動態,然後選擇所有類別與計數。

+0

如何與$計數相關的類別。類別1的cid = 1等等 – Sabari 2012-01-29 16:35:17

回答

2

我想你會更好,如果你可以存儲類別數據庫中的名稱。如果在數據庫中存儲類別名稱,比如

categories 
+----+----------------------+ 
cid | cat_name     | 
+----+----------------------+ 
| 1 | Category 1 
| 2 | Category 2 
| 3 | Category 3 
... 

然後,你可以查詢數據庫,如:

$query = "SELECT count(*) as count,`cat_name` FROM categories GROUP BY cid"; 


<ul> 
    <?php foreach($categories as $category) { // Or however you get it ?> 
     <li><?php echo htmlentities($category['cat_name']); ?>: (<?php echo $category['count']; ?>)</li> 
    <?php } ?> 
</ul> 

如果你不存儲在數據庫中的類別名稱,另一種可能性是,如果您的CID 1與第1類相同等等,那麼你可以做。

$query = "SELECT count(*) as count,`cid` FROM category GROUP BY cid ORDER BY cid ASC" 

提供的$結果是數組中的順序,那麼你可以做

<ul> 
    <li>Category 1: ($result[0][count])</li> 
    <li>Category 2: ($result[1][count])</li> 
    <li>Category 3: ($result[2][count])</li> 
</ul> 

但我建議你使用第一個。

希望這會有所幫助:)

0

看一看在GROUP BY操作

SELECT COUNT(element) FROM category GROUP BY cid 
2

我會建議只是存儲在數據庫中的類別列表。您可以選擇計數以及其他字段,並且它更優雅。差不多:

categories 
+----+----------------------+ 
| id | name     | 
+----+----------------------+ 
| 1 | Some category 
... 

elements 
+-----+-----------+-------------+ 
| cid | blah  | blah2  | 
+-----+-----------+-------------+ 
| 1 | something | whatever | 
... 

和查詢:

SELECT *, COUNT(SELECT * FROM elements WHERE elements.cid = categories.id) AS count 
FROM categories 

,並顯示:

<ul> 
<?php foreach($results as $category) { // Or however you get it ?> 
    <li><?php echo htmlentities($category['name']); ?>: <?php echo $category['count']; ?></li> 
<?php } ?> 
</ul> 
相關問題