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

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


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

最佳答案

您需要稍微改变一下逻辑。检查是否存在与ts + INTERVAL 7 DAY < NOW()匹配的行,这意味着“它们是否已参加7天以上的任何活动”?检查与ts + INTERVAL 7 DAY >= NOW()匹配的行意味着“它们在过去一周中没有参加任何活动吗?”如果没有行,那么一周之内他们什么也没做。

(此外,只是挑剔,但您的散文有“两周”,代码有“ 7天”。当然,两周是14天。)

关于php - PHP MySQL,如果最新时间戳比今天早两周,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12733943/

10-12 15:34