Обновить данные в таблице из JSON

В запросе приходит строка с JSON следующего вида:

[{"client_diagnoses_id":"11","treatment_id":97},{"client_diagnoses_id":"10","treatment_id":92},{"client_diagnoses_id":"12","treatment_id":96}]

Нужно изменить значение поля treatment_id. Преобразуем JSON в пару строк вида «11,10,12» и «97,92,96» следующим образом:

if (isset($_REQUEST['checked_diag'])) $diag_array = json_decode($_REQUEST['checked_diag'], true);
else exit();
$diag_count = count($diag_array);
$client_diagnoses_id = '';
$treatment_id = '';

if ($diag_count > 0){
for($counter=0; $counter<$diag_count; $counter++){
$client_diagnoses_id.= $diag_array[$counter]['client_diagnoses_id'].',';
$treatment_id .= $diag_array[$counter]['treatment_id'].',';
}
$client_diagnoses_id = substr($client_diagnoses_id,0,-1);
$treatment_id = substr($treatment_id,0,-1);

Потом вставляем

UPDATE client_diagnoses SET treatment_id = new_treatment.treatment_id
  FROM (
    SELECT unnest(array[$client_diagnoses_id]) AS client_diagnoses_id, unnest(array[$treatment_id]) AS treatment_id
    ) AS new_treatment
  WHERE client_diagnoses.client_diagnoses_id = new_treatment.client_diagnoses_id;

Оставить комментарий