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的新手,所以有时候我只需要指出正确的方向。它现在似乎工作得很好。