2015-03-16 3 views
0

Я получил два ассоциативных массива, и я хочу обновить его значения в mysql db. Итак, я сделал это:Как обновить MySQL db из двух ассоциативных массивов в php

// for all other contacts 
if(isset($_POST['otherAddress']) || isset($_POST['otherComments'])) 
{ 
    $otherAddress = $_POST['otherAddress']; 
    $otherComments = $_POST['otherComments']; 

    foreach (array_keys($otherAddress + $otherComments) as $key) 
    { 
     $query = "UPDATE `boardcontacts` SET 
     `address`='$otherAddress[$key]',`comments`='$otherComments[$key]' 
     WHERE `memberID` = '$nID' AND `addressType`='other'"; 

     mysql_query($query); 
    } // for end 
} // if end 

Проблема: Она дублирует все обновленные строки с последним индексом каждого массива. Любая помощь?

+0

можете ли вы показать свой $ otherAddress и $ otherComments массив. Это поможет нам решить вашу проблему. –

+0

что здесь $ nID. вы можете указать меня. –

+0

@NavjotSingh его национальный идентификатор членов совета – Learner

ответ

2

Просто любопытно, что вы обновляете значение $nID ??
Потому что, если foreach выполняет без обновления $nID, запрос будет обновлять значения в одной и той же строке каждый раз, потому что условие where одинаково одинаково.

+0

Вы пишете, это вопрос, Теперь мой вопрос - как его решить? – Learner

+1

Это зависит от вашей логики ... откуда вы хотите получить член ID? –

+0

Я думаю, что самый быстрый способ - добавить столбец «contactID» в качестве автоматического приращения, который будет различать каждую строку в таблицеКонтакт таблицы и передать ее вместе с $ nID, решит проблему ^^ – Learner

Смежные вопросы