【发布时间】:2011-11-20 23:55:03
【问题描述】:
我认为这应该比我的大脑处理它更简单 - 但我已经盯着它太久了......
我有一个用于客户的数据库驱动的竞赛引擎。他们可以登录并上传奖品照片、问题、开始/结束日期等。
一切都很好 - 除了他们现在正在更改系统以允许一次只运行一场比赛。 因此,当有人尝试添加新的比赛时,我需要验证它不会与数据库中已有的任何其他比赛重叠......
我的脑袋已经让我走到这一步了:
$db->query('SELECT
1
FROM
' . DB_T_PREFIX . 'competition
WHERE
(
start_date <= "'.$fldStartDate->getValue().'"
AND
close_date >= "'.$fldStartDate->getValue().'"
)
AND
deleted = "0000-00-00 00:00:00"');
有人可以检查我这应该涵盖任何重叠吗? 我很确定我需要更多条件来解决这个问题,但头脑已经变得糊涂了......讨厌使用日期范围。
谢谢,
史蒂夫
【问题讨论】:
-
之前有人回答过这个问题:stackoverflow.com/questions/2545947/…
-
谢谢 - 不确定这是否是我需要的 100%。可能我的管理员用户可以按任何顺序添加这些比赛,并在数据库中现有条目之间的间隙中创建一个新的...
-
在链接的答案中列出并证明了所有可能的对齐日期,它始终有效。但请注意,这与您拥有的解决方案不同。