0

同じデータが何度も表示されるテーブルがあり、テーブル構造は次のようになります。id は autoincrement.pm はユーザー ID です。beliw table のように何度も表示されます。テーブル全体の抽出として出力を表示したい降順で。テーブルが100行で構成されており、ユーザーID 15が10回来て、それが一番上に来て、次に他のIDがそのように来ているとします。私は試しましたが、ここで動作していませんが、私のコードでもあります

id    userid
1      33
2      34
3      37
4      33 
5      33
6      37

私が望む出力は

     userid   nos
      33       3
      37       2
      34       1

ガイドしてください。私はこのコードで試しました

$res = sql_query("select count(userid) as total from tableA");

echo'<table>';
while ($row = sql_fetch_array($res)) {
echo ' <tr><td>'.$row['userid'].'</td></tr></table>';
4

3 に答える 3

3

GROUPBYステートメントを使用する必要があります

SELECT userid, COUNT(userid) AS nos FROM tableA
    GROUP BY userid ORDER BY nos DESC;
于 2012-04-15T20:21:05.177 に答える
2
SELECT userid, COUNT(userid) FROM tableA AS nos GROUP BY userid ORDER BY nos DESC

次に、以下にアクセスできます。

$row['userid']ユーザーIDの場合

$row['nos']カウントのために

于 2012-04-15T20:19:57.640 に答える
0

ループの方法論が間違っています。

$res = sql_query("select userid, count(userid) as total from tableA group by userid order by total desc");
echo'<table>';
while ($row = sql_fetch_array($res)) {
  echo ' <tr><td>'.$row['userid'].'</td><td>'.$row['total'].'</td></tr>';
}
echo '</table>';
于 2012-04-15T20:21:54.473 に答える