我有2张桌子
table 'events'
id event_name date
1 buy milk 1319074920 // 10-20-2011
2 lunch 1321753320 // 11-20-2011
table 'people'
id user birthday
1 Jack 16508520 // 7-11-1970
2 Bill 180409320 // 9-20-1975
我想做的是:
[1]使用最接近当前日期/时间的事件创建一个数组>>解决
我的查询会生成一个像这样的数组
Array ( [0] =>
Array (
[date] => 1319074920
[event_name] => buy milk
)
)
[2]创建一个生日最接近当前日期/时间的数组
不知道该怎么做。我可以查询数据库并检索用户和生日并循环显示结果,但需要将生日年份更改为当前年份,保持月和日不变。
[3]比较2个数组并选择一个最接近当前日期/时间的条目:生日或事件。
有什么建议吗?
查询代码
$query = $this->db->query("
SELECT *
FROM events
WHERE UTC_1 >= UNIX_TIMESTAMP()
ORDER BY UTC_1
LIMIT 1
;");
答案 0 :(得分:2)
如果您的查询提供了最接近的事件,那么只需对生日使用相同的查询,因为您的表是相同的结构。 一旦你有最接近的事件和最接近的生日,你可以在php中进行简单的比较,找到要显示的那个。
if (abs(bday[0]['date'] - time()) < abs(event[0]['date'] - time())) {
// Show birthday
} else {
// Show event
}