Sql 活动用户跟踪,PHP会话
好的,我正在尝试在基于AJAX的应用程序中开发一个活动用户计数函数。我想用正确的语法表达下面的SQL查询,但我不确定如何编写它。所需的SQL查询如下:Sql 活动用户跟踪,PHP会话,sql,mysql,sql-like,Sql,Mysql,Sql Like,好的,我正在尝试在基于AJAX的应用程序中开发一个活动用户计数函数。我想用正确的语法表达下面的SQL查询,但我不确定如何编写它。所需的SQL查询如下: SELECT count(*) FROM active WHERE timestamp > time() - 1800 AND nick=(a string that doesn't contain [AFK]) 现在,我知道time()-1800可以分配给变量,但是timestamp>variable和nick如何不包含用SQ
SELECT count(*)
FROM active WHERE timestamp > time() - 1800
AND nick=(a string that doesn't contain [AFK])
现在,我知道time()-1800可以分配给变量,但是timestamp>variable
和nick如何不包含用SQL编写的字符串呢 你是说time()
指的是当前时间吗?我们可以假定时间戳
是日期时间
类型吗?那么这应该是可行的:
SELECT
count(*)
FROM
active
WHERE
timestamp > NOW() - 1800
关于用户名,您应该在将每个变量放入sql查询()之前对其进行筛选 然后在sql查询中:
$sql = "SELECT count(*) FROM `active` WHERE `timestamp` > (time() - 1800) AND `nick` = '{$nick}' AND `nick` NOT LIKE '%[AFK]%' LIMIT 1";
选择计数(*)
从活动
其中时间戳>日期添加(现在(),间隔-1800秒)
尼克不喜欢“%[AFK]%”我对SQL不是很在行,但可能对不包含[AFK]:的字符串使用“%[AFK]]”now()就不行了,因为我们在寻找时间戳。这个问题上留下的评论对AFK检查有用吗?嗯,NOW()是CURRENT_TIMESTAMP()的同义词,但是我看到被接受的答案是关于Unix时间戳的,这对我来说并不明显。无论如何,您需要的是。它被过滤了,我只发布了相关代码,并且您的nick=部分查询不会只过滤没有[AFK]字符串的结果。
$nick = mysql_escape_string($nick);
$sql = "SELECT count(*) FROM `active` WHERE `timestamp` > (time() - 1800) AND `nick` = '{$nick}' AND `nick` NOT LIKE '%[AFK]%' LIMIT 1";