2012-09-08 84 views
0

我希望下面的輸出數字「5」,因爲在數據庫5行與項目68和用戶1,但不是我得到這個輸出「12345」。MySQL的伯爵工作了

$resultb4 = mysql_query("SELECT COUNT(comparedRating) FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1"); 
while($rowb4 = mysql_fetch_array($resultb4)){ 
    $countcomparedratings=$rowb4['COUNT(comparedRating)']; 
} 
echo $countcomparedratings; 

我在做什麼錯?

回答

1

您得到12345的原因是因爲你的查詢返回5個結果和你的代碼的輸出計數簡單地輸出從查詢返回數組的串聯。

不理解你的數據庫結構,我猜你得到的原因,「12345」有事情做與GROUP BY子句。使用像MySQLWOrkbench這樣的程序連接到數據庫,並在將其包含到代碼中之前測試出您的查詢。調試您的查詢是節省時間的技術。

另外,我想別名COUNT值,讓你簡單地指的是別名,當你指的列名。

SELECT COUNT(comparedRating) as ratingCount FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1"); 
+0

事實證明,問題是它每次都在while循環中運行。我把上面的代碼移到了那個循環之外,並且修正了它......這聽起來很簡單,但是由於我記不得/理解這些原因花了我幾天的時間來修復。 –