В запросе приходит строка с 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;
Оставить комментарий