Я пытался добавить некоторые пользовательские поля в мою установку osCommerce 2.3. Эти поля (products_lot, products_location, products_serial_number, products_note
) все отображаются так, как должны, и все они вытаскивают из products_description
таблица в моей базе данных. Я перемещаю базу данных, в которой уже есть эти строки, и каждое поле отображает (извлекает) значения полей точно так, как я ожидал.
Однако, когда я пытаюсь сохранить новые значения или обновить существующий продукт в этих строках, выдается ошибка 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
, так далее.
Если ваши пользовательские поля находятся в products
таблица, строки в этой таблице не сохраняются для каждого идентификатора языка. products_description
В таблице есть строки для каждого идентификатора языка.
Ваш код для настраиваемых полей находится в $ sql_data_array, который вставляется / обновляется в products
Таблица. Если ваши настраиваемые поля различны для каждого языка и они хранятся в products_description
таблицу, вам нужно переместить эти поля в $ sql_data_array внутри
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
петля. В противном случае $ language_id будет неопределенным.
Других решений пока нет …