2011-11-01 6 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

GROUP BY句がない集計COUNT()関数を使用しています。結果セット全体が崩壊し、レコード数がカウントされるので、1行1フィールドの結果セットが返されます。

5

mysql_num_rowsの結果はいずれかになります、あなただけのデータベースから1行を選択している、それだけの条件に一致するレコードの数であることを起こります。これを試してみてください:

$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;