1

我没有找到我的问题的答案,也没有看到有人问这个特定的问题。我有一个 php 采购订单表单,我在其中通过 javascript 动态添加行项目,并且能够捕获数组中每个行项目的所有数据并将数据发布到 mysql 数据库。我唯一遇到问题的字段是按日期要求。

我通常使用 date(strtotime()) 将诸如 01/01/01 之类的日期转换为 2001-01-01 以便存储在 mysql 中,但是我无法正确捕获此日期,重新格式化为适当的日期时间字符串,然后通过遍历我的数组与我的其他数据一起发布。

在我的匆忙中,我尝试了许多不同的方法,例如将 date("Ymd",strtotime($Item_Date[$a])) 放在我的 INSERT 查询中,同时声明一个变量并分配 date("Ymd",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++;
}

任何帮助将不胜感激。

4

1 回答 1

1

好的,谢谢大家的帮助。我怀疑数组中的数据要么没有得到正确处理,要么在 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++;
}
于 2012-06-26T20:48:59.093 回答