Обновление MYSQL, заменить удаление массивом PHP - PullRequest
0 голосов
/ 06 января 2011

У меня есть запрос, который мне нужно запустить в массиве $ _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']. Также, похоже, что он не обновляет / удаляет текстовый идентификатор из БД, если он не находится в массиве

Ответы [ 2 ]

0 голосов
/ 06 января 2011

В итоге будет установлено только последнее значение, так как вы обновляете ту же запись, сколько раз у вас есть значения в вашем массиве.не может волшебным образом стать несколькими записями таким образом - вам понадобится отдельная таблица или используйте INSERT.

0 голосов
/ 06 января 2011

Что вы действительно делаете, это 3 обновления на одной записи. Вот почему вы получаете только последнее значение в базе данных.

Вы обновляете запись id_text = 28 со значениями 8,6,10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...