如何搜索mysql DATE并将结果与​​日期和数据一起返回?

时间:2013-12-27 16:11:06

标签: php mysql date

我想知道如何执行日期搜索并返回结果?

我为用户制作了一个表格,以便手动输入日期

<form  method="post" action="result.php"  id="searchform"> 
<input  type="text" name="dob" /> 
<input  type="submit" name="submit" value="Search" />

此外,已在search.php中包含mysql连接

$dsn = 'mysql:host=localhost;dbname=mama';
$username = 'root';
$password = '';
$dbh = new PDO($dsn, $username, $password);

$userDate = $_POST['dob'];
$dateTime = DateTime::createFromFormat('d/m/Y', $userDate);
$myFormat = $dateTime->format('Y-m-d');

$sql = "SELECT dob FROM data WHERE dob = :date";
$sth = $dbh->prepare($sql);
$sth->execute(array('date'=>$myFormat)); //Switched to array() syntax.
$results = $sth->fetchAll();
foreach($results->query($sql) as $row)
{
    print $row['rowone'] . "  ";
    print $row['rowtwo'] . "  ";
    print $row['rowthree'] . "  ";
    print "$userDate";
} 

用户将按照亚洲格式键入日期 - &gt; DD / MM / YYYY但我明白mysql DATE存储为Y-m-d,日期行有另外三个存储数据的行名(row1,row2,row3)。

我需要的是,当用户以亚洲格式输入日期时,点击搜索按钮,它将在mysql中查找日期并将日期与其他三行数据一起返回。

除此之外,一行数据只有一个日期。

请注意,在我看谷歌的时候,我找不到最像我想要的最相似的教程。

1 个答案:

答案 0 :(得分:0)

以下是如何将用户格式化日期转换为适合MySQL格式的示例。

$userDate = '27/12/2013';
$dateTime = DateTime::createFromFormat('d/m/Y', $userDate);
$myFormat = $dateTime->format('Y-m-d');

然后您可以在查询中使用该新变量。

$sql = "SELECT * FROM myTable WHERE myDate = :date";
$sth = $dbh->prepare($sql);
$sth->execute(array('date'=>$myFormat)); //Switched to array() syntax.
$results = $sth->fetchAll();