如何一次为一个客户插入多个日期条目(日期数组数据)
How to Insert multiple date entries (Date array data) at once for one client
我需要从 HTML 表单中捕获客户一次进行的多次日期访问。
所有其他数据类型都成功存储,但日期更改为默认值“1970-01-01”。
有没有一种方法可以将日期数组转换为从 HTML 表单中选择的单个日期,以避免默认日期和错误:
“未定义索引:01-01-1970”。
我试过使用日期数组,但没有成功。
<?php
//Post Variables
//name="ClientID[]" 1
//name="ClientID[]" 2
//$ClientID = array(1,2);
//name="VisitDate[]" 01-01-2021
//name="VisitDate[]" 01-01-2020
//$VisitDate=array('01-01-2021','01-01-2022');
$ClientID=$_POST['ClientID'];
$VisitDate=$_POST['VisitDate'];
foreach ($VisitDate as $k=>$v) {
$VisitDate[$k] = date('Y-m-d', strtotime($v));
}
for ($i = 0; $i < count($ClientID); $i++) {
$ClientID=$ClientID[$i];
$VisitDate=$VisitDate[$i];
}
$query=$con->prepare("insert into records (ClientID,VisitDate) values ('$ClientID','$VisitDate')");
$result=$query->execute();
?>
在您的 html 表单中,输入标签内使用 type="date"。例如,
<form action="post.php" method="post">
<label for="date"> Date </label>
<input name="picDate" type="date">
<input type="submit" name="submit">
</form>
日期很难管理,因为 MySQL 检查它们。现在只需将您的数据类型从数据库更改为 varchar 并删除日期转换过程。由于您使用的是日期选择器,因此用户不会以错误的格式输入日期,因为它会在数据库中被识别为 varchar。
<?php
//Post Variables
//name="ClientID[]" 1
//name="ClientID[]" 2
//$ClientID = array(1,2);
//name="VisitDate[]" 01-01-2021
//name="VisitDate[]" 01-01-2020
//$VisitDate=array('01-01-2021','01-01-2022');
$ClientID=$_POST['ClientID'];
$VisitDate=$_POST['VisitDate'];
//Deleted the date array conversion
for ($i = 0; $i < count($ClientID); $i++) {
$ClientID=$ClientID[$i];
$VisitDate=$VisitDate[$i];
}
$query=$con->prepare("insert into records (ClientID,VisitDate) values ('$ClientID','$VisitDate')");
$result=$query->execute();
?>
这应该有效。
我需要从 HTML 表单中捕获客户一次进行的多次日期访问。 所有其他数据类型都成功存储,但日期更改为默认值“1970-01-01”。
有没有一种方法可以将日期数组转换为从 HTML 表单中选择的单个日期,以避免默认日期和错误: “未定义索引:01-01-1970”。
我试过使用日期数组,但没有成功。
<?php
//Post Variables
//name="ClientID[]" 1
//name="ClientID[]" 2
//$ClientID = array(1,2);
//name="VisitDate[]" 01-01-2021
//name="VisitDate[]" 01-01-2020
//$VisitDate=array('01-01-2021','01-01-2022');
$ClientID=$_POST['ClientID'];
$VisitDate=$_POST['VisitDate'];
foreach ($VisitDate as $k=>$v) {
$VisitDate[$k] = date('Y-m-d', strtotime($v));
}
for ($i = 0; $i < count($ClientID); $i++) {
$ClientID=$ClientID[$i];
$VisitDate=$VisitDate[$i];
}
$query=$con->prepare("insert into records (ClientID,VisitDate) values ('$ClientID','$VisitDate')");
$result=$query->execute();
?>
在您的 html 表单中,输入标签内使用 type="date"。例如,
<form action="post.php" method="post">
<label for="date"> Date </label>
<input name="picDate" type="date">
<input type="submit" name="submit">
</form>
日期很难管理,因为 MySQL 检查它们。现在只需将您的数据类型从数据库更改为 varchar 并删除日期转换过程。由于您使用的是日期选择器,因此用户不会以错误的格式输入日期,因为它会在数据库中被识别为 varchar。
<?php
//Post Variables
//name="ClientID[]" 1
//name="ClientID[]" 2
//$ClientID = array(1,2);
//name="VisitDate[]" 01-01-2021
//name="VisitDate[]" 01-01-2020
//$VisitDate=array('01-01-2021','01-01-2022');
$ClientID=$_POST['ClientID'];
$VisitDate=$_POST['VisitDate'];
//Deleted the date array conversion
for ($i = 0; $i < count($ClientID); $i++) {
$ClientID=$ClientID[$i];
$VisitDate=$VisitDate[$i];
}
$query=$con->prepare("insert into records (ClientID,VisitDate) values ('$ClientID','$VisitDate')");
$result=$query->execute();
?>
这应该有效。