Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据MySQL数据库中的年龄筛选结果_Php_Mysql - Fatal编程技术网

Php 如何根据MySQL数据库中的年龄筛选结果

Php 如何根据MySQL数据库中的年龄筛选结果,php,mysql,Php,Mysql,我有一个数据库设置与用户信息,包括姓名,电子邮件,出生日期,性别,网站和其他信息 我正在尝试为用户页面实现筛选结果选项 问题是我不知道如何按年龄过滤,因为我将年龄值存储为出生日期,我有一个php函数从中获取年龄,但我该如何进行过滤 过滤选项为年龄:12-24、25-32、33-56(以年为单位) 我觉得这个怎么样从user.age=20的用户中选择*我甚至没有年龄栏,我只有出生日期 该筛选器存储在会话变量$\u session['age']=12-24如何从会话和以后的筛选器中获取第一个值(12

我有一个数据库设置与用户信息,包括姓名,电子邮件,出生日期,性别,网站和其他信息

我正在尝试为用户页面实现筛选结果选项

问题是我不知道如何按年龄过滤,因为我将年龄值存储为出生日期,我有一个php函数从中获取年龄,但我该如何进行过滤

过滤选项为年龄:12-24、25-32、33-56(以年为单位)

我觉得这个怎么样<代码>从user.age=20的用户中选择*我甚至没有年龄栏,我只有出生日期

该筛选器存储在会话变量
$\u session['age']=12-24
如何从会话和以后的筛选器中获取第一个值(12)和最后一个值(24),以便年龄应大于12且小于24

请帮帮我

  • 从现在开始减去出生日期得到年龄,然后进行比较

  • 使用select的值(不是文本,而是值)作为数组中的查找,以获取年龄范围


  • SELECT(FLOOR((CURDATE()-`birthfield`)/10000))作为`age`从`tablename`中选择`age`
    SELECT*从DATEDIFF(CURRENT_DATE,dob)>=(12*365.25)和DATEDIFF(CURRENT_DATE,dob)中选择*

    $sessArr = array();
    $sessArr = explode('-',$_SESSION['age']);
    
    现在在数组
    $sessArr
    中,您在数组
    $sessArr[0]和$sessArr[1]中都有值。
    你可以试试这个,它可能会对你有帮助。

    应该可以(还没有测试过它)

    $_会话['age']=“12-24”

    $agroup1= 拆分($_会话['age'],'-')

    $min=$agroup1[0]$马克斯= $agroup1[1]

    $query=“从用户中选择*,其中 年份(dob)=年份(curdate())-24”


    日历年龄:在
    2016-02-28
    出生的人在
    2017-02-27
    出生时为0岁,在
    2017-02-28
    出生时为1岁。在
    2016-02-29
    出生的人在
    2017-02-28
    出生时为0岁,在
    2017-03-01
    出生时为1岁。(闰年)

    MySQL对此的表示是

       TIMESTAMPDIFF(YEAR, date_of_birth, current_date)
    

    它生成一个整数,并正确处理截断和闰年。(用365.25除以过去的天数并不一定正确。)

    这有一点帮助,但你能以任何方式将其写入并显示为MySQL语句吗?如果你在Google中键入“MySQL减去两个日期”,第一个结果将是MySQL手册页面,其中包含用于执行此操作的函数以及许多其他带有日期的内容。20101210-19760306=340904。。不过我只有34岁。。我不知道,我不认为MySQL会将日期转换成整数,然后像那样减去它们,对吗?只是尝试了一下,效果很好。。但是:我需要除以10000,非常好,谢谢。:)
    $sessArr = array();
    $sessArr = explode('-',$_SESSION['age']);
    
       TIMESTAMPDIFF(YEAR, date_of_birth, current_date)