2012-04-10 72 views
1

此刻,我已經得到了下面的代碼:如何計算SQL中最常見的值?

$forummost = mysql_query(" 

SELECT door, 
COUNT(door) AS doorCount 
FROM forum_posts 
GROUP BY door 
ORDER BY COUNT(door) 
DESC 

"); 
$forummostc = mysql_num_rows($forummost); 
$forummostf = mysql_fetch_assoc($forummost); 

有人可以解釋我爲什麼mysql_num_rows($ forummost)不起作用?

在此先感謝!

+0

過得好或輸出什麼錯誤? – HarryBeasant 2012-04-10 19:28:09

+0

我得到「227」,但當我在PHPMyAdmin SQL中選擇同一個用戶時,我得到:「1158」 – Mossawi 2012-04-10 19:29:21

+2

返回數組中的行數是不同門的數量。 – 2012-04-10 19:30:29

回答

1

GROUP BY只選擇mysql中該列的不同值。就你的情況而言,正如指出的那樣,它會選擇儘可能多的行,因爲有不同的door值。

1

mysql_num_rows統計查詢返回的行數。您的查詢是what is the count for each door,因此每個門只返回一行。

0

試試這個,我測試,它的工作原理..

<?php 
$link = mysql_connect('localhost','root',''); 
if (!$link) 
{ 
    die('Could not connect to MySQL: ' . mysql_error()); 
} 
echo 'Connection OK'."</br>"; 


$forummost = mysql_query(" 
    SELECT door, 
COUNT(door) AS doorCount 
FROM forum_posts 
GROUP BY door 
ORDER BY COUNT(door) 
DESC 
"); 


$forummostc = mysql_num_rows($forummost); 

if ($forummostc == 0) { 
    echo "No rows found, nothing to print so am exiting"; 
    exit; 
} 

while ($row = mysql_fetch_assoc($forummost)) { 
    echo $row["door"]; 
    echo $row["doorCount"]; 

} 

mysql_free_result($forummost); 

mysql_close($link); 

?>