2012-06-22 48 views
1

我還沒有找到我的問題的答案,也沒有看到任何人問這個問題。我有一個php購買訂單表單,我通過javascript動態添加行項目,並能夠捕獲數組中每個行項目的所有數據,並將數據發佈到mysql數據庫。我遇到的唯一問題是按日期要求。php mysql日期數組發佈日期時間

我通常使用date(strtotime())將01/01/01等日期轉換爲2001-01-01,以便在mysql中存儲,但是我無法正確捕獲這個日期,重新格式化爲合適的datetime字符串,然後通過遍歷我的數組與我的其他數據發佈。

在我匆忙中,我嘗試了許多不同的方法,例如在INSERT查詢中放入日期(「Ymd」,strtotime($ Item_Date [$ a]))以及聲明變量和賦值日期(「 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

可以爲您確認,如果你的$ Item_Date [$一]的形式「的01/01/01「?你也看到任何mysql錯誤?如果是這樣,他們是什麼? –

+0

沒有mysql錯誤。我可以輸入05/31/12並在屏幕上回顯2012-05-31 ...但我的日期發佈到mysql作爲0000-00-00。如果我輸入05/31/2012我在屏幕上回顯2012-05-31,但發佈日期爲0000-00-00。如果我輸入2012-05-31我回復2012-05-31和發表2012-05-31。我想在數組中的日期轉換中有些東西迷失了。 – user1459766

+0

剛剛注意到別的,以及...在我的javascript添加行2012-05-31 echos的輸入日期爲1970-01-01和帖子爲0000-00-00。實際上,echo和post對於所有格式都是一樣的。看起來好像數組沒有被正確創建。仍然沒有解決我的問題的關鍵,但可能會有更多的事情發生。 – user1459766

回答

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++; 
}