2011-11-01 122 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;