我在搜索表单上工作的是用户选择的年龄。然后结果显示为搜索。
我的表格如下(name,dob,emailid,mobileno)列
这是我的查询
SELECT name,dob, YEAR(CURDATE()) - YEAR(dob) AS age AND age (BETWEEN '25' AND '30') FROM users
我可以根据dob(DateofBirth)获得年龄,但无法在查询之间运行...
怎么做?我是不是错过了什么?
请帮帮我。
先谢谢
答案 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)