MySQL计数(*)仅计算第一行

时间:2014-01-01 16:37:25

标签: php mysql sql

表'服务器'包含有关某些Minecraft服务器的信息,一些信息是当前有多少玩家在线(该行称为“玩家”)我想要做的是计算那里有多少玩家在该表上的所有服务器上,所以我做

$rt = mysql_query("SELECT Players, COUNT(*) FROM servers") or die(mysql_error());
$row = mysql_fetch_row($rt);
if ($row) {
    echo $row[0];
}

但是对于一些共鸣,这几行代码只返回1台服务器的在线播放器数量,而不是所有14台服务器  
请帮忙

4 个答案:

答案 0 :(得分:1)

您的查询实际上是返回2D数组,请尝试

print_r($row);

你会看到差异。但我强烈建议你使用

SELECT SUM(Players) FROM servers

这样你就算得上了。

答案 1 :(得分:1)

玩家是否持有人数?你想要所有这些吗?如果是这样,那就是

SELECT SUM(Players) FROM servers

如果您希望按服务器分组

SELECT SUM(Players), id FROM servers GROUP BY id

答案 2 :(得分:0)

为了使计数有意义,你需要一个GROUP BY子句:

SELECT 
    Players, count(*)
FROM 
    servers
GROUP BY Players

答案 3 :(得分:0)

只需将每个玩家值添加到结果中

SELECT SUM(Players) FROM Servers