MySQL PHP查询总是返回1

时间:2013-07-23 23:17:40

标签: php mysql

此脚本始终返回一个,而不是实际的在线用户数。任何人都可以帮忙修复我的代码吗?

$oq = "SELECT user FROM user_archive WHERE time > (NOW() - INTERVAL 5 MINUTE)";
$oresult = mysqli_query($con,$oq);
$online_users = mysqli_num_rows($oresult);

if($online_users = 1)
{
     echo "{$online_users} user online";    
}

if($online_users != 1)
{
echo "{$online_users} users online";    
}

4 个答案:

答案 0 :(得分:1)

您需要使用==代替=

if($online_users == 1)
{
     echo "{$online_users} user online";    
}

答案 1 :(得分:1)

在您编写的代码行中:

if($ online_users = 1)

您将值1设置为$ online_users,而不是比较该值。它应该是:

if($ online_users == 1)

答案 2 :(得分:1)

使用一个等号是assignment operator所以:

$Var = 1; // This variable equals to 1

但是在验证时。

if ($Var == 1){

} // Notice the use of two equals, for a comparison operator

http://php.net/manual/en/language.operators.comparison.php

答案 3 :(得分:0)

$online_users = 1必须为$online_users == 1

$oq = "SELECT COUNT(*) FROM user_archive WHERE time > (NOW() - INTERVAL 5 MINUTE)";

$oq = "SELECT COUNT(DISTINCT user) FROM user_archive WHERE time > (NOW() - INTERVAL 5 MINUTE)";

COUNT(*)很重要,而不是你做的事。

为什么要检索rows of data来计算它们,当你只能得到一个integer并让MySql为你计算时?