gpt4 book ai didi

php - 在搜索过程中使用 DOB 选择年龄组

转载 作者:行者123 更新时间:2023-11-29 06:47:57 25 4
gpt4 key购买 nike

我正在尝试实现一种搜索,用户可以在其中搜索 18 岁以上或以下的候选人。

搜索中年龄部分的 html:

  Age<select id ='eighteen' name="eighteen" size="1" >
<option value="Below Eighteen">Below Eighteen</option>
<option value="Above Eighteen">Above Eighteen</option>
<option value="Any">Any</option>
</select>

PHP代码:

$age = trim($_POST['eighteen']);    

$query2 = mysql_query("SELECT * FROM p_candidate WHERE YEAR(CURDATE())-YEAR(`age`) >= 18");
$query = mysql_query("SELECT * FROM p_candidate WHERE YEAR(CURDATE())-YEAR(`age`) < 18");
if ($age =="Below Eighteen") {$dob = $query;}
if ($age == "Above Eighteen") {$dob = $query2;}



$Odata = mysql_query("SELECT * FROM p_candidate WHERE(`gender` LIKE '%".$Gender."%') AND (`age` LIKE '%".$dob."%')") or die(mysql_error());

当我在没有填写搜索表单中的性别字段的情况下运行此代码时,我没有得到任何结果。我怎样才能让它工作?我需要修改哪一部分?

我的数据库在 mysql 中,候选人的 DOB 存储在名为 age 的列中

最佳答案

要查看他们是否至少 18 岁,您可以从当前日期减去 18 岁并将他们的出生日期(似乎是 age 列)与该日期进行比较。

18 岁或以上:

SELECT * FROM p_candidate WHERE age <= CURDATE() - INTERVAL 18 YEAR

18 岁以下:

SELECT * FROM p_candidate WHERE age > CURDATE() - INTERVAL 18 YEAR

我也会避免使用 LIKE当你不需要的时候。如果您要检查性别 F或性别 M然后就说WHERE gender = 'F'WHERE gender = 'M' .过度使用 LIKE 将一无所获,并且您可能会放慢原本可以优化的查询。

关于php - 在搜索过程中使用 DOB 选择年龄组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com