此脚本始终返回一个,而不是实际的在线用户数。任何人都可以帮忙修复我的代码吗?
$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";
}
答案 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
答案 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为你计算时?