如何使用mysql php在alisas列的查询之间运行

时间:2017-07-29 10:28:53

标签: php mysql

我在搜索表单上工作的是用户选择的年龄。然后结果显示为搜索。

我的表格如下(name,dob,emailid,mobileno)列

这是我的查询

SELECT name,dob, YEAR(CURDATE()) - YEAR(dob) AS age AND age (BETWEEN '25' AND '30') FROM users

我可以根据dob(DateofBirth)获得年龄,但无法在查询之间运行...

怎么做?我是不是错过了什么?

请帮帮我。

先谢谢

1 个答案:

答案 0 :(得分:0)

除了查询中的一些语法错误之外,主要问题是:您无法在SELECT columns部分WHERE中使用别名。WHERE部分。这与SQL在SELECT columns之前执行WHERE这一事实有关。只需将您的公式包含在SELECT name, dob, YEAR(CURDATE()) - YEAR(dob) AS age FROM users WHERE YEAR(CURDATE()) - YEAR(dob) BETWEEN '25' AND '30' - 部分:

<?php
    include 'assets/connect.php';
    if(isset($_POST['submit'])){
        if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){
            $fname = $_POST['fname'];
            $lname = $_POST['lname'];
            $email = $_POST['email'];
            $password = $_POST['password'];
            $query = "INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')"
$send = mysqli_query($con,$query);

            if($send){
                echo "DONE";
            }
            else {
                echo "error";
            }
        }
    }

?>

附注:看看问题How to calculate age (in years) based on Date of Birth and getDate(),因为您的公式并不总是给出正确的结果(例如出生日期'2000年12月1日'和当前日期'2017年7月29日'它返回17,应该是16)