我想知道如何执行日期搜索并返回结果?
我为用户制作了一个表格,以便手动输入日期
<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中查找日期并将日期与其他三行数据一起返回。
除此之外,一行数据只有一个日期。
请注意,在我看谷歌的时候,我找不到最像我想要的最相似的教程。
答案 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();