Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 活动用户跟踪,PHP会话_Sql_Mysql_Sql Like - Fatal编程技术网

Sql 活动用户跟踪,PHP会话

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

好的,我正在尝试在基于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如何不包含用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";