2012-04-10 12 views
1

はmysql_num_rows($ forummost)が動作しない理由を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); 

は、誰かが私に説明できますか?

ありがとうございます!

+0

どのようなエラーを取得したり、出力されていますか? – HarryBeasant

+0

私は "227"を取得しますが、PHPMyAdmin SQLで同じユーザーを選択すると、 "1158"と表示されます。 – Mossawi

+2

返される配列の行数は、別個のドアの数です。 –

答えて

1

GROUP BYは、mysqlのその列の異なる値だけを選択します。あなたの場合、指摘されているように、異なる数の行が選択されます。door値があります。

1

mysql_num_rowsは、クエリによって返された行の数をカウントします。クエリはwhat is the count for each doorです。したがって、各ドアに1行だけが返されます。

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); 

?> 
関連する問題