我没有找到问题的答案,也没有看到有人问过这个特定问题。我有一个 php 采购订单表单,我在其中通过 javascript 动态添加订单项,并且能够捕获数组中每个订单项的所有数据并将数据发布到 mysql 数据库。我遇到的唯一问题是按日期要求。
我通常使用 date(strtotime()) 将诸如 01/01/01 之类的日期转换为 2001-01-01 以便存储在 mysql 中,但是我无法正确捕获此日期,重新格式化为适当的日期时间字符串,然后通过遍历我的数组与我的其他数据一起发布。
在我的匆忙中,我尝试了多种不同的方法,例如将 date("Y-m-d",strtotime($Item_Date[$a])) 放入我的 INSERT 查询中,同时声明一个变量并分配 date("Y-m-d ",strtotime($Item_Date[$a])) 考虑到每次通过我的 foreach 循环都会重新分配该值。下面概述了每个提到的尝试的示例。
示例 1
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,E3_PN,E3_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
SELECT NOW(),'$SO_Num','$SO_Rev','$i','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$PN[$a]','$PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','date("Y-m-d", strtotime($Item_Date[$a]))'" or die ('Error posting data');
mysql_query($query1);
$i++;
}
示例 2
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,E3_PN,E3_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
SELECT NOW(),'$SO_Num','$SO_Rev','$i','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$PN[$a]','$PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Item_Date[$a]'" or die ('Error posting data');
$Item_Date = date("Y-m-d", strtotime($Item_Date[$a]));
mysql_query($query1);
$i++;
}
如有任何帮助,我们将不胜感激。
最佳答案
好的,谢谢大家的帮助。我怀疑数组中的数据要么没有得到正确处理,要么在 foreach 循环中被删除了。以下调整使世界发生了翻天覆地的变化:
代替:
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,E3_PN,E3_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
SELECT NOW(),'$SO_Num','$SO_Rev','$i','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$PN[$a]','$PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Item_Date[$a]'" or die ('Error posting data');
$Item_Date = date("Y-m-d", strtotime($Item_Date[$a]));
mysql_query($query1);
$i++;
}
我用过:
foreach($Cust_PN as $a => $b) {
$Item_Date[$a] = date("Y-m-d", strtotime($Item_Date[$a]));
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,PN,PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
SELECT NOW(),'$SO_Num','$SO_Rev','$i','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$PN[$a]','$PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Item_Date[$a]'" or die ('Error posting data');
mysql_query($query1);
$i++;
}
关于作为日期时间发布的日期的 php mysql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150173/