以 html 形式从 MYSQL 中检索日期
Posted
技术标签:
【中文标题】以 html 形式从 MYSQL 中检索日期【英文标题】:Retrieving a date from MYSQL in a html form 【发布时间】:2019-05-16 00:41:31 【问题描述】:您好,我有一个表格可以添加成员及其出生日期。出生日期的输入字段是:
<div class="form-group">
<label for="data_nascita" class="col-sm-3 control-label">Birth Date</label>
<div class="col-sm-9">
<input name="data_nascita" type="date" class="form-control" id="data_nascita" placeholder="gg/mm/aaaa" />
</div>
</div>
数据正确上传到mysql,日期格式为
$data_nascita = ($_POST['data_nascita']);
var_dump($data_nascita); => string(10) "2003-04-15"
在数据库中正确存储,并显示为
2018-12-14 18:50:48
我希望能够编辑有关此人的信息(即更改出生日期),并且我创建了一个编辑文件,其中检索了所有数据库信息并显示在可以在 MYSQL 中编辑和更新的表单字段中.
除了显示为 gg/mm/aaaa 的日期外,一切正常
我用来检索数据的代码和往常一样:
<?php
$query = "SELECT data_nascita FROM volontari WHERE id_volontari = '$id'";
$res = $mysqli ->query($query);
$row = $res->fetch_array (MYSQLI_ASSOC);
$data_nascita = gira_data_db($row['data_nascita']);
function gira_data_db($data)
$array = explode( "-" , $data);
$array2 = array($array[2], $array[1], $array[0]);
$testo = implode( "/" , $array2);
return $testo;
?>
<div class="form-group">
<label for="data_nascita" class="col-sm-3 control-label">Birth Date</label>
<div class="col-sm-9">
<input name="data_nascita" type="date" class="form-control" id="data_nascita" value="<?php echo $data_nascita ?>" />
</div>
</div>
检索到的日期是
var_dump(gira_data_db($row['data_nascita']);) => string(10) "15/04/2003"
但是,在我的表单字段中,数据显示为 00/00/0000。如果我在输入字段 type=text 中回显日期,则显示正确。
我做错了吗?
【问题讨论】:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
将其添加到您打开的<?php
文件下;它显示了什么以及查看 html 源代码。还有,$id
来自哪里?
@Funk Forty Niner 没有出现错误。 $id 只是我要检查的单个记录的对应关系,因为我有一系列记录。
好的。有人在下面为您提供了答案,请参阅。
顺便说一句,您对这里的严重 SQL 注入持开放态度。
你说得对:我只是简化了代码。在最后的写作中,我将关闭它以进行 SQL 注入。谢谢!
【参考方案1】:
问题是,当您按“-”展开时,数组 [2] 是“14 18:50:48”,并且对于日期类型的输入来说它不是有效值。
只需将 gira_data_db 函数更改如下:
function gira_data_db($data)
return date("YYYY-MM-DD", strtotime($data));
希望对你有帮助
【讨论】:
我试过你的功能,但还不行。这很奇怪,因为您在理论上是正确的,但是当我 var_dump 来自 MYSQL 的内容时,我看不到任何时间,只是日期格式正确。 刚刚通过回显您的函数进行了另一次检查:它提供了正确的格式日期,但它仍然没有出现在我的表单字段中 根据link需要将日期格式改为YYYY-MM-DD 我也按照你的建议做了,但不行:和以前一样 你用的是什么浏览器?以上是关于以 html 形式从 MYSQL 中检索日期的主要内容,如果未能解决你的问题,请参考以下文章
以 HTML 形式更新 MySQL 行的 jQuery datepicker
CakePHP:从单个模型中检索多个记录以以一种形式进行编辑
从 Android Studio 中的 SQLite 数据库中以字符串形式检索数据
使用 PHP 从 MySQL 数据库中获取数据,以表格形式显示以进行编辑