【问题标题】:how to see online users status如何查看在线用户状态
【发布时间】:2023-03-15 19:38:01
【问题描述】:

我如何在登录后使用更新语句更新到数据库状态 = 1 或单独的页面,其中 id =$id 请任何人字符串的外观如何?

这是一个会员状态脚本,我正在尝试制作它,以便在线会员可以拥有自己的页面

这只是查看部分,接下来是更新部分

 mysql_select_db("messages") or die(mysql_error()); 
 $data = mysql_query("SELECT on_status FROM users WHERE id='$user_id'") 
 or die(mysql_error()); 
 echo "<table border cellpadding=3 bgcolor=\"00FF00\">"; 
 while($info = mysql_fetch_array( $data )) 
 { 
 echo "<tr>"; 
 echo "<th>User:</th> <td>".$info['user_name'] . "</td> "; 
 echo "<th>Status:</th> <td>".$info['on_status'] . " </td></tr>"; 
 } 
 echo "</table>"; 

?>
<p><br>

<a href="/home.php">Go Back</a><p>

【问题讨论】:

  • 我首先在您的代码中发现了一个问题。你有 id='$user_id 而不是 id=$user_id 或 id='$user_id'。此外,如果你这样做 WHERE id='$user_id' 那么你会发现,基于对“id”通常意味着的理解,只有一个用户,所以你的表将始终包含一行。这是你打算做的吗?

标签: php mysql


【解决方案1】:

在 users 表中添加一个名为 status 的字段。其中 users 表包含用户的所有数据。

当用户登录时将status更新为online..此代码将在验证用户名和密码后放置..

// 例如:当您为用户启动会话时写入此更新

当用户尝试注销 UPDATE statusoffline .. 此代码将放在 session_destroy() 语句旁边

【讨论】:

    【解决方案2】:

    试试这个更新语句:

    "UPDATE `users` SET `on_status` = 1 WHERE `id` = '$user_id'";
    

    不过,如果我可以这样建议:​​保留上次活动的时间戳。这样,如果页面未刷新超过 5 分钟(或更长时间),您可以将用户显示为“离线”,即使用户没有点击注销按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多