2011-11-01 127 views
0

我知道我在表格中有多个结果,谁能告诉我我做错了什么?PHP,MySQL查询总是返回1?

<?php 
$con = mysql_connect("x","y","z"); 
if (!$con) 
{ 
die(mysql_error()); 
} 
mysql_select_db("mydatabase", $con); 
$query = ("SELECT COUNT(*) FROM usersonline WHERE datetime > NOW() - INTERVAL 5 MINUTE"); 
$result = mysql_query($query); 
$num_rows = mysql_num_rows($result); 
echo $num_rows; 
?> 

回答

3

你使用聚合COUNT()函数没有GROUP BY子句。它会折叠整个结果集并计算记录的数量,因此您只能得到1行1场结果集。

5

mysql_num_rows结果将是一个,你只从数据库中选择一排,它恰好是比赛的条件的记录数。试试这个:

$query = ("SELECT COUNT(*) AS cnt FROM usersonline WHERE datetime > NOW() - INTERVAL 5 MINUTE"); 
$result = mysql_query($query); 
$row = mysql_fetch_array($result); 
$num_rows = $row['cnt']; 
echo $num_rows;