У меня есть запрос, который мне нужно запустить в массиве $ _POST с php, это довольно просто, так как он принимает все значения в массиве, затем запускает запрос для каждого из значений, которые обновляют базу данных, вот сложная часть: Поскольку массив зависит от флажков, выбранных пользователем, запрос должен либо обновить, заменить, либо удалить значения в БД в зависимости от того, что находится в массиве $ _POST. Мне удалось только успешно выполнить запрос последнего значения в массиве.
Я пробовал оба «ЗАМЕНИТЬ В» и «ВСТАВИТЬ ИГНОРИРОВАТЬ В», но безуспешно. Я начинаю думать, что понадобится гораздо более сложное кодирование :( вот что у меня есть:
foreach($params['text'] as $boilertext)
{
$sql = 'UPDATE '._DB_PREFIX_.'boilertexts
SET id_product="'.pSQL($boilertext).'" WHERE id_text="'.$params['id'].'"';
if(!Db::getInstance()->Execute($sql))
{
echo mysql_error();
}
}
EDIT:
Это сообщения, которые я получаю:
Array (
[text] => Array ( [0] => 8 [1] => 6 [2] => 10 ) // the Text ID i'm updating
[textValue] => "Some text that I'm adding to another DB table"
[id] => 28 // The ID that all the params from ['text'] are linked too
[update] => update // Name of the submit button I'm using for form processing
)
Моя проблема в том, что хотя foreach выполняет SQL x количество раз для каждого запроса (проверяя его, распечатывая счетчик для каждого запроса), он вставит только последнее значение в массив ['text']. Также, похоже, что он не обновляет / удаляет текстовый идентификатор из БД, если он не находится в массиве