У меня есть многомерный массив, который я хочу вставить в MySQL через оператор UPDATE. Но я хочу, чтобы он обновлялся, только если entry_id из массива соответствует entry_id из DB. Если он соответствует значениям из массива, он должен быть обновлен.Как обновить mysql tabel с многомерным массивом
Это мой многомерный массив с именем значения
Array (
[0] => Array ([entry_id] => 41149 [o_number] => 000001 [test1] => 000001 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4)
[1] => Array ([entry_id] => 41142 [o_number] => 000202[test1] => 000202 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4)
[2] => Array ([entry_id] => 41103 [o_number] => 000003 [test1] => 000003 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4)
[3] => Array ([entry_id] => 41101 [o_number] => 000044 [test1] => 000044 [test2] => 1234 [lev] => Ja [fak] => Manuel/brev [beta] => 10 [test] => 2)
[4] => Array ([entry_id] => 41100 [o_number] => 000542 [test1] => 000542 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4))
Это мои полей БД, я хочу, чтобы обновить.
o_number test1 test2 lev fak beta
И это, как мой DB выглядит сейчас
title entry_id o_number test1 test2 lev fak beta
Rest Soya 41149
Cafe Bella 41142
Danglette 41103
Это мой код, чтобы узнать, как итерацию через в качестве одномерного массива, а затем обновить MYSQL. Но я хочу только обновить, если соответствует entry_id.
Итак, вопрос в том, как я могу обновить таблицу, когда у меня есть многомерный массив? Я пробовал это так, но не решил проверить его, потому что я не хочу вставлять что-то неправильно. Есть ли лучший и эффективный способ сделать это?
foreach ($values as $key)
{
$sql_update = "UPDATE exp_channel_data set
o_number =$key['o_number'],
lev ='$key['lev']',
fak =$key['fak'],
beta =$key['beta'],
test1 =$key['test1'],
test2 =$key['test2']
where entry_id = '$entry_id"
$this->EE->db->query($sql_update);
}
Это мой желаемый результат в моей БД
title entry_id o_number test1 test2 lev fak beta
Rest Soya 41149 000001 000001 1234 Ja Mail 30
Cafe Bella 41142 000202 000202 1234 Ja Mail 30
Danglette 41103 000003 000003 1234 Ja Mail 30
Это подходящий способ сделать это, за исключением того, что у вас много проблем с цитированием. – Barmar
Что это значит? – Zaz