我有一个表,其中相同的数据一次又一次出现,表结构如下所示.id是autoincrement.pm是for userid.it将一次又一次地出现像beliw table.i想要将输出显示为提取整个表的降序排列。假设该表由100行组成,并且用户标识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>';
答案 0 :(得分:3)
您需要使用GROUP BY语句
SELECT userid, COUNT(userid) AS nos FROM tableA
GROUP BY userid ORDER BY nos DESC;
答案 1 :(得分:2)
SELECT userid, COUNT(userid) FROM tableA AS nos GROUP BY userid ORDER BY nos DESC
然后你可以访问:
用户ID $row['userid']
$row['nos']
答案 2 :(得分: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>';