2015-03-30 175 views
1

我一直在試圖添加一些自定義字段到我的osCommerce 2.3安裝。這些字段(products_lot, products_location, products_serial_number, products_note)都應該顯示,他們都從我的數據庫中的products_description表中拉出。我正在遷移已具有這些行的數據庫,並且每個字段都顯示(拉出)字段值,完全如我所料。自定義字段不保存到MySQL

然而,當我嘗試保存新值或更新現有的產品到這些行,它將引發1054錯誤:1054 - Unknown column 'products_lot' in 'field list'

如果我提出這些字段的tep_db_prepare_input()部成不同的陣列product_description,所述不會引發錯誤,但實際上沒有任何值會保存到數據庫中。它要麼截斷這些領域,要麼保存以前沒有數據的地方。例如,將「5」添加到產品位置:在數據庫中是一個很大的零。

TL; DR 它拉動信息很好,但它沒有保存所有,我不知道爲什麼。 。 。

這裏是categories.php文件我的工作,以創建和存儲這些領域:

http://pastebin.com/raw.php?i=wHrddQyq

所有的MySQL列被命名爲匹配,所以products_description表有products_lot

+0

好了,所以我想* *我固定它: '[$ LANGUAGE_ID]'上線264 是導致其古怪行爲。它會刪除條目並保存不正確。任何人都可以向我解釋爲什麼會這樣?我會冒險說它和我的行編碼有關。 – LukePatrick 2015-03-30 19:43:54

回答

3

如果您的自定義字段位於products表中,則該表中的行不會爲每個語言ID存儲。 products_description表包含每個語言ID的行。

您自定義字段的代碼位於products表中插入/更新的$ sql_data_array中。如果您的自定義字段每種語言不同,它們存儲在products_description表,您需要將這些字段移動到$ sql_data_array的

for ($i=0, $n=sizeof($languages); $i<$n; $i++) { 

循環中。否則,$ language_id將是未定義的。

+0

完美!感謝您的解釋,這使得現在更有意義。說實話,我應該看到這一點。我正在移植很多舊的代碼,只是沒有抓住它。 – LukePatrick 2015-03-31 02:17:48