Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
PHP MySQL,如果最新时间戳比今天早两周,则_Php_Mysql_Timestamp - Fatal编程技术网

PHP MySQL,如果最新时间戳比今天早两周,则

PHP MySQL,如果最新时间戳比今天早两周,则,php,mysql,timestamp,Php,Mysql,Timestamp,我正在尝试查询一个表,其中每个用户和组都保存考勤记录。如果每个用户和组的最新时间戳比今天的日期早两周,则会显示一个图像。这里是我在这一点上的代码,但我不认为我理解的时间格式或东西 $tsquery = mysql_query("SELECT ts FROM `attendance` WHERE contact_id='$contactid' AND group_id='$groupid' AND `ts` + INTERVAL 7 DAY < NOW() ORDER

我正在尝试查询一个表,其中每个用户和组都保存考勤记录。如果每个用户和组的最新时间戳比今天的日期早两周,则会显示一个图像。这里是我在这一点上的代码,但我不认为我理解的时间格式或东西

$tsquery = mysql_query("SELECT ts FROM `attendance` WHERE contact_id='$contactid' AND             group_id='$groupid' AND `ts` + INTERVAL 7 DAY < NOW() ORDER BY ts LIMIT 1 ");
$ts=mysql_fetch_array($tsquery);

if(isset($ts)){
echo "<img src='images/care.png' title='Care Group' style='border: none; background-color:     #fff;'>";
} else {
} 
$tsquery=mysql\u query(“从'Attention'中选择ts,其中联系人id='$contactid'和组id='$groupid'和'ts`+间隔7天

我在一些人身上得到了错误的结果。如果有人在两周前没有参加某个活动,但昨天确实参加了某个活动,那么这将返回到真实状态,而不是发现他们在过去两周内参加了某个活动。有没有更好的方法可以返回更准确的结果?

您需要稍微改变一下逻辑。检查是否存在与
ts+INTERVAL 7 DAY
匹配的行意味着“他们是否在7天前参加了任何活动”?检查是否有与
ts+INTERVAL 7 DAY>=NOW()匹配的行。
表示“他们在过去一周内是否参加了任何活动?”如果没有行,则表示他们在一周内没有做任何事情


(同样,这只是一个吹毛求疵的问题,但你有散文中的“两周”和代码中的“7天”。当然,两周就是14天。)

难道
$ts
不是一个关联数组,也不是ts的值吗?或者,如果结果中没有行,PHP是否为关联数组返回null?我想可能是另外一个问题。我不太熟悉PHP中的mysql查询函数。@这是个好问题。文档说,
mysql\u fetch\u array
为零行返回false,而不是空数组。所以
isset
可能是错误的测试,但是
if(!$ts)
可以很好地工作。谢谢霍布斯!我还是MySQL的新手,所以有时候我只需要指出正确的方向。它现在似乎工作得很好。