это мой код здесь я выбираю значение из базы данных я хочу, если получить пустое значение в запросе от внешнего интерфейса, то я назначил предыдущее значение базы данных этого столбца
$data=array(
'currentvoltage'=>$this->post('currentvoltage'),
'mainstatus'=>$this->post('main'),
'dgstatus'=>$this->post('dg'),
'acstatus'=>$this->post('acstatus'),
'firestatus'=>$this->post('fire'),
'smpsstatus'=>$this->post('smps'),
'simulatorid'=>$this->post('simulatorId')
);
//print_r($data);exit;
$checkdata=$this->basic->updatedata('tbl_simulatoralert',$data,$this->post('simulatorId'));
// print_r($checkdata);exit;
if(!empty($checkdata))
{
$response_data['responseCode'] = "200";
$response_data['responseMessage'] = "Data updated sucessfully";
$this->response($response_data);
}
Вместо:
$data=array(
'currentvoltage'=>$this->post('currentvoltage'),
'mainstatus'=>$this->post('main'),
'dgstatus'=>$this->post('dg'),
'acstatus'=>$this->post('acstatus'),
'firestatus'=>$this->post('fire'),
'smpsstatus'=>$this->post('smps'),
'simulatorid'=>$this->post('simulatorId')
);
Делать:
$data = array();
if(!empty($this->post('currentvoltage'))) $data['currentvoltage'] = $this->post('currentvoltage');
Если у вас есть только столбцы со значениями в массиве, будут обновлены только эти столбцы.
Если предположить, $data
хранит входные данные, полученные из формы:
$data = array(
'currentvoltage'=>$this->post('currentvoltage'),
'mainstatus'=>$this->post('main'),
'dgstatus'=>$this->post('dg'),
'acstatus'=>$this->post('acstatus'),
'firestatus'=>$this->post('fire'),
'smpsstatus'=>$this->post('smps'),
'simulatorid'=>$this->post('simulatorId')
);
и разреши $db_data
имеет данные для данного идентификатора, вы можете использовать троичный оператор для установки значений в $data
,
Например,
$data = array(
'currentvoltage'=>($this->post('currentvoltage')) ?: $db_data['currentvoltage'],
//similarly others
);
Это простая проверка пустых / нулевых значений и подстановка входного значения или значения, хранящегося в базе данных.