2014-01-26 74 views
-2

我目前有一張看起來像這樣的表格。如何統計MySQL表中的某些行?

http://i.stack.imgur.com/KFP6Q.png

這是一個評論系統。列ID給註釋一個ID。 server_id是評論發佈的部分的ID。 user_id是發佈它的人員的ID。最後,評論本身就是評論。這裏是我創造的評論:

http://pastebin.com/VHUDW6Dm

我想要做的就是創建一個變量,$ commentcount,會算多少評論有一臺服務器,並能夠在一個頁面上顯示它們。如果有人能指示我一個可以幫助我的功能,或者實際上在這裏創建代碼,那將不勝感激。

+2

向我們展示你的嘗試。 http://stackoverflow.com/questions/how-to-ask – chanchal118

+0

歡迎來到SO!請在您的問題中包含隱藏在鏈接後面的內容。它應該包括所有相關信息。如果你的問題是由這裏沒有寫的東西引起的,或者需要發現這些信息,你的問題就寫得不好。該鏈接可能在未來中斷,這個問題將缺乏重要信息。請參見[如何創建最小,完整,測試和可讀示例](http://stackoverflow.com/help/mcve)和[如何提出一個好問題?](http://stackoverflow.com/help/how - 問)在幫助。 – Palec

回答

0

對你來說一個非常粗略的草案將迭代計數。

$q = mysql_query("MYSQL QUERY TO GET ALL THE COMMENTS FOR THE USER"); 

$count = 1; // Start the count, preferrably at 1 

while ($comment = mysql_fetch_assoc($q)) { 
    $count++; //iterate the count 
} 

echo $count; // Echo's the count; 
+2

這對大型結果集來說會很慢。所有的記錄都需要從數據庫中讀取,這有很大的開銷。當自己需要記錄時,這是最好的方法,但是當只需要計數時,COUNT()聚合函數的效果會更好,因爲計算是在數據庫服務器中完成的(允許優化),只有結果傳輸到應用。 – Palec

0

使用下面的MySQL查詢

SELECT COUNT(*)從評論count_comment;

1

由於您希望每個服務器的註釋數量,因此您可以使用SQL GROUP BY子句通過唯一的server_id聚合結果行。

SELECT server_id, COUNT(id) FROM comments GROUP BY server_id; 

這將返回每個server_id組的計數。如果你一次只顯示該單個SERVER_ID,你可以簡單地使用

SELECT COUNT(id) FROM comments WHERE server_id = <your server id>; 

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html