我没有找到问题的答案,也没有看到有人问过这个问题。我有一个php采购订单表格,我通过javascript动态添加订单项,并能够捕获数组中每个订单项的所有数据,并将数据发布到mysql数据库。我遇到问题的唯一领域是按日期要求。
我通常使用date(strtotime())将日期(例如01/01/01)转换为2001-01-01,以便存储在mysql中但是我无法正确捕获此日期,重新格式化为适当的日期时间字符串然后通过迭代我的数组发布我的其他数据。
在我的仓促中,我尝试了许多不同的方法,例如将日期(“Ymd”,strtotime($ Item_Date [$ a]))放入我的INSERT查询中,同时声明变量并指定日期(“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++;
}
非常感谢任何帮助。
答案 0 :(得分: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++;
}