1

現時点では、次のコードがあります。

$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)が機能しない理由を誰かが説明できますか?

前もって感謝します!

4

3 に答える 3

1

mysql_num_rowsクエリによって返された行数をカウントします。クエリはwhat is the count for each door、ドアごとに 1 つの行のみが返されるようにするためです。

于 2012-04-10T19:36:47.963 に答える
1

GROUP BYは、mysql のその列の異なる値のみを選択します。あなたの場合、指摘したように、異なるdoor値が存在するのと同じ数の行を選択します。

于 2012-04-10T19:41:36.097 に答える
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); 

?> 
于 2012-04-10T19:43:41.623 に答える