0

我正在尝试查询每个用户和组保存出勤记录的表。如果每个用户和组的最新时间戳比今天的日期早两周,则会显示图像。这是我此时拥有的代码,但我认为我不了解时间格式或其他内容。

$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 {
} 

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

4

1 回答 1

1

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

(另外,只是一个挑剔,但你有“两周”的散文和“7 天”的代码。两周当然是 14 天。)

于 2012-10-04T18:58:47.077 回答