php - 如何搜索mysql DATE并返回结果以及日期和数据?

标签 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";
} 

用户将按照亚洲格式输入日期 --> DD/MM/YYYY,但我知道 mysql DATE 存储为 Y-m-d,日期行还有另外三个存储数据的行名称(row1、row2、row3) .

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

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

请告知,当我查看谷歌时,我找不到最相似的教程来执行我想要的操作。

最佳答案

以下示例展示了如何将用户格式化的日期转换为适合 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();

关于php - 如何搜索mysql DATE并返回结果以及日期和数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803843/

相关文章:

mysql - 如何使用案例陈述

sql - 调用返回包含日期的表的函数

php - Laravel 5.5 模型上的自定义软删除

mysql - 错误代码 : 1148. 此 MySQL 版本不允许使用的命令

PHP 表单复选框

python - 检查日期列是否在日期范围内 - Pandas

java - 从日历到 ChronoLocalDateTime

php - 在mysql中通过多次检查从数据库表中获取随机记录?

PHP 在具有多个表单输入的同一列中添加数据

php - 属性在方法1中设置后在方法2中为空