这是给我的OJT项目的。我需要从DATE类型的MySQL数据库中搜索生日。我已经从一月到十二月获得查询。问题是从十二月到一月。

到目前为止,这是我所做的代码:

<?php
require 'connect.php';
?>
<?php
    if(isset($_POST['birthday_from']) && isset($_POST['birthday_to'])){

 $start_date=$_POST['birthday_from'];
    $end_date=$_POST['birthday_to'];

     //$s = strtolower($end_date);
    $start_year = date('m-d', strtotime($start_date));
    $end_year = date('m-d', strtotime($end_date));

$search_year = date('Y', strtotime($start_date));
$search_year2 = date('Y', strtotime($end_date));


    $sql=" select * from members where (DATE_FORMAT(`birthday`, '%m-%d') BETWEEN '{$start_year}' AND '{$end_year}') order by DATE_FORMAT(`birthday`, '%m-%d') asc ";
        $result = mysql_query($sql);
        $num_row = mysql_num_rows($result);
        if($num_row >= 1){
                echo '<div class="alert alert-info" style="margin:auto;width:900px;"><b><center>BIRTHDAY RESULT</center></b></div>';
            while($rows = mysql_fetch_array($result)){
                $date = date('Y-m-d')-$rows['birthday'];
                echo '<b><span style="margin-left:20px;">Name:</span></b> '.strtoupper($rows['firstname'].' '.$rows['middlename'].' '.$rows['lastname'].' '.$rows['suffix']).'<br/>';
                echo '<b><span>Birthday:</span></b> '.$rows['birthday'].'<br/>';
                echo '<b><span style="margin-left:30px;">Age: </span></b>'.$date.'<br/><br />';
            }


    }
    }
?>

最佳答案

当开始日期>结束日期时,您不检查情况。发生了。
您将var $ start_year = date('m-d',strtotime($ start_date))命名为,但没有任何Year值。这是不好的做法。
定义和分配后,请勿使用vars search_year,search_year2。
我不明白您想要什么,您可以举几个表中的行为例,并得出想要获得的结果,但是不能吗?

关于php - 如何在MySQL中搜索从12月到1月的生日?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26333088/

10-09 20:22