2011-08-19 47 views
0

我正在尝试建立一个搜索功能,它可以根据年龄范围获得结果。数据库包含用户的生日(例如1980-09-11 00:00:00)。现在我正在尝试搜索用户,例如通过使用$ agefrom = 15;和$ ageto = 18; ..但我现在不知道如何PHP代码和db语句应该看起来像..在php中搜索年龄

我想在PHP中做最多的东西,然后只做一个SQL查询像(出生< birth_to AND birth> birth_from)..

谢谢你的帮忙!

回答

0

最简单的查询,这将不完全精确的工作将是

SELECT ... 
FROM ... 
WHERE YEAR(birthday) BETWEEN (YEAR(now()) - 18, YEAR(now()) - 15) 

,如果一个人的生日还没有在某一年发生这将失败(例如,它是5月1日,他们的B-一天是6月15日)。处理这种情况将需要更多的日期数学来检查“年份是正确的,但日/月是错误的”。

0

我认为最容易构建15和18年前需要的日期(在PHP中),然后用BETWEEN语句将这些日期放在查询中。午夜回合或者你会遇到不好的情况。

+0

但问题在那里,我得不到确切的结果,如果一个人还没有在今年的生日..如何解决这个问题? – simons

+0

@simons添加一年到'$ ageto'。 – JJJ