2015-01-26 2 views
-3

У меня есть следующие массивы, сгенерированные из веб-формы. Я хочу вставить данные в таблицу, которую я имею с фамилией столбцов и ref. Я раньше не работал с массивами - какой самый сжатый способ перебора массивов?Вставить значения из нескольких массивов в MySQL

Для информации [0] представляет идентификатор человека в базе данных, [1] - их фамилия, а [2] - логическое значение. Запрос должен обновить таблицу, чтобы установить логическое значение за [2], учитывая ID в [0]. (Фамилия не имеет отношения к запросу).

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => Jones 
      [2] => 1 
     ) 

    [1] => Array 
     (
      [0] => 3 
      [1] => Anderson 
      [2] => 0 
     ) 

    [2] => Array 
     (
      [0] => 2 
      [1] => Smith 
      [2] => 0 
     ) 

) 

Я теперь пытался использовать цикл Еогеасп обновлять соответствующие поля, но проблема у меня есть начало запроса на обновление повторяется каждый раз, так что запрос не:

foreach($_POST as $key=>$item){ 
$invitee = $item[0]; 
$status = $item[2]; 
$query = "UPDATE invites SET reply_status='$status' WHERE id='$invitee'"; 
echo $query; 

в случае, если в результате запроса генерируемый:

UPDATE invites SET reply_status='1' WHERE id='1'UPDATE invites SET reply_status='1' WHERE id='3'UPDATE invites SET reply_status='1' WHERE id='2' 
+2

Используйте цикл для генерации запроса на вставку. Не ракета. –

+0

Цикл 'For' или' foreach' будет работать. –

+0

@JohnConde Я попытался использовать foreach, чтобы заставить это работать, но безрезультатно, я редактировал вопрос, как указано выше, чтобы показать, что я пытался сделать. Конечно, это очень просто, извините. – Welly

ответ

0

Вы можете использовать "для каждого":

foreach($myarray as $key=>$item){ 
//create or execute your query using $item[0],$item[1],$item[2] 
} 

Он будет проходить через каждую клавишу и позволит вам вводить значения через $ item.

+0

Итак, вот что я сделал дальше: foreach ($ _ POST as $ key => $ item) { // создаем или выполняем ваш запрос, используя $ item [0], $ item [1], $ item [2] $ invitee = $ item [0]; $ status = $ item [2]; $ query = "UPDATE приглашает SET reply_status = '$ status' WHERE id = '$ invitee'"; echo $ query; Это все еще не работает, так как он создает несколько таблиц UPDATE. Значение SET = x WHERE value = y, поэтому запрос завершается с ошибкой. – Welly

+0

Вы неправильно отформатировали код. Это не сложно. $ query = "UPDATE' invites' SET 'reply_status' = '". $ Status. "' WHERE' id' = '". $ Invitee."' "; – Piry

+0

Выполненный запрос (как показано в моем отредактированном вопросе выше) одинаковый независимо от того, использую ли я исходный код или форматированный код, который вы ввели в свой комментарий. Конечно, проблема в том, что я не могу иметь список UPDATE, приглашающий SET x = y, UPDATE приглашает SET x = y один за другим в одном и том же запросе, и это то, что я не знаю, как исправить. Спасибо за вашу помощь. – Welly