gpt4 book ai didi

PHP/SQL - 搜索两个术语以返回存储在 mysql 数据库中的数据

转载 作者:行者123 更新时间:2023-11-29 12:24:40 24 4
gpt4 key购买 nike

概念:

  • 用户输入性别、生日(年月日)和其他信息,这些信息将被存储在数据库中。
  • 有一个查询(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');

关于PHP/SQL - 搜索两个术语以返回存储在 mysql 数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com