2011-08-28 66 views
2

我想在我的页面上显示总注册用户数。我用这:显示总注册用户数

<?php 
//connect to db 
require_once('connect.php'); 

$usrcnt = mysql_query("SELECT COUNT(DISTINCT ID) FROM members"); 
$res = mysql_num_rows($usrcnt); 

$cnt_mbrs = mysql_fetch_array($res); 
?> 

然后我叫我的页面$cnt_mbrs但我得到这样的错误:

mysql_num_rows():提供的参数不是一个有效的MySQL结果资源...

这是正确的我在做什么?

+0

你并不需要添加DISTINCT如果ID是主键。 –

回答

3
$usrcnt = mysql_query("SELECT COUNT(*) as cnt FROM members"); 
$res = mysql_fetch_array($usrcnt); 
$cnt_mbrs = $res ['cnt'] 

更正确。

+0

我改变了别名和引用,使其更加明显地被引用。 –

+2

使用'COUNT(*)',让我们不要散布虚假优化 – Crack

+0

@Crack所以COUNT(*)比COUNT(1)快还是一样的吗? – genesis

0

mysql_num_rows返回结果集中的行数。更改为

$cnt_mbrs = mysql_fetch_array($usercnt); 
-1

也许出于性能考虑,它可能是最好只保留一个运行总。

是的,我知道,数据库将不会被标准化

+0

不是答案。我没有任何标志,虽然 – genesis

+0

我只是在想,所采用的方法是不正确的,因为这需要注册用户的数量将不得不做计数每一页。不确定涉及的指标等。似乎是过度enginenered恕我直言。 –