这是一个什么正在发生的细节
我现在面临的最大问题是,在login.php中,它应该更改数据库中的标志以显示一个人在线。
if($table=='chatmodels'){ $sql="update ".$table." set loginStatus=1 where user=".$id['user']; $upd=mysql_query($sql);
它应该改变“chatmodels.loginStatus”等于1,一旦一个人成功login,但它不起作用。 它曾经工作。
我很确定我在数据库configuration中有什么问题。
这里是我的数据库http://img.zgserver.com/mysql/BcaII.jpg的截图
在屏幕截图中,我看到chatmodels
表驻留在qoc1
数据库中。
既然你使用的是PHP,你需要做以下两件事之一:
选项1:使用mysql_select_db ,如下所示:
mysql_select_db('qoc1');
在调用更新查询之前
if($table=='chatmodels'){ mysql_select_db('qoc1'); $sql="update ".$table." set loginStatus=1 where user=".$id['user']; $upd=mysql_query($sql);
选项2:将qoc1
放入查询本身:
if($table=='chatmodels'){ $sql="update qoc1.".$table." set loginStatus=1 where user=".$id['user']; $upd=mysql_query($sql);
试一试 !!!
其他的事情要记住
美国东部时间2011-12-15 15:28
尝试在$upd=mysql_query($sql);
之后放置'or die'
$upd=mysql_query($sql);
并查看基于mysql的错误消息是什么回来的
你已经得到了一些建议,可以帮助你解决这个问题,但是会话到期的问题呢? 如果loginStatus==1
,是否有一个cron作业或者是你已经发布的内容,那么对于不活动的用户,它loginStatus==1
回0。
我认为实现相同结果的更好方法是让每个页面加载一个“lastSeen”时间戳。 然后,你的“在线”用户列表由“lastSeen”在可配置或可编程时间段内的所有人组成,而不是那些标志还没有被重置为0的人。