2013-07-23 154 views
0

此腳本始終返回一個,而不是實際的在線用戶數。任何人都可以幫助修復我的代碼MySQL PHP查詢總是返回1

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

回答

1

您需要使用==,而不是=

if($online_users == 1) 
{ 
    echo "{$online_users} user online";  
} 
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爲你計算?

+0

所以,我只是一個大DERP。 XD – Bob

+0

@Grace你更像是一個性能高超/威脅:)一個冒着爲一個'integer'下載'數百/數千行'的風險。 – CodeAngry

+0

我只是困惑。我沒有行,沒有發生整數。 XD – Bob

1

在代碼中你寫的一行:

如果($ online_users = 1)

您asigning值1到$ online_users,而不是比較價值。它應該是:

如果($ online_users == 1)使用