概念:
- 用户输入性别、生日(y-m-d)和其他信息,这些信息将被存储在数据库中
- 有一个查询(
query.php
)页面,专门用于特定的搜索词,第一种形式是从选择选项(男性、女性)中搜索特定的性别并输入年龄 - 此表单将张贴到
queryRun.php
,并显示结果(如果有)
现在我已经尝试过几次了,但我很难在不手动输入生日的情况下将生日更改为年龄。
下面的代码可以工作,但正如您所看到的,$dob
是手动输入的(我如何将其更改为上一步中输入数据库的数据)。
<?php
//birth date in yyyy-mm-dd format
$dob = "1993-10-03";
//explode the date to get year , month and day
$dob = explode("-", $dob);
//get age from date or birthdate
$current_month = date("m");
$current_day = date("j");
$current_year = date("Y");
$age = $current_year - $dob[0];
if($current_month<$dob[1] || ($current_month==$dob[1] && $current_day<$dob[2])) $age--;
echo "Age is ". $age;
?>
一旦年龄的计算被排序,我就需要在数据库中搜索输入的标准,我有这个,但它似乎不起作用。。。
if($_POST['sRetrieveBirthday'] && $_POST['sRetrieveGender'])
$queryRetrieve = mysql_query( "SELECT * TIMESTAMPDIFF(YEAR, sRetrieveBirthday, CURDATE())
AS sBirthday FROM staffData WHERE TIMESTAMPDIFF(YEAR, sRetrieveBirthday, CURDATE()) > '40'");
while($info = mysql_fetch_array($queryRetrieve, MYSQL_ASSOC))
{
echo ' <td>'.$info["sBirthday"].'';
这是我收到的错误,
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/-/www/-/asQueriesRun.php on line 31 SELECT failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIMESTAMPDIFF(YEAR, sRetrieveBirthday, CURDATE()) AS sBirthday FROM staffData ' at line 1
有什么想法吗?我已经挣扎了好几天了,如果不让这个核心概念发挥作用,我就无法转到其他搜索查询。
SELECT *
后需要逗号
SELECT *, TIMESTAMPDIFF(YEAR, sRetrieveBirthday, CURDATE())
AS sBirthday
FROM staffData
WHERE TIMESTAMPDIFF(YEAR, sRetrieveBirthday, CURDATE()) > '40');
如果从SELECT中删除*,它应该可以工作。