I make a php script to check value before update. This script is working fine. But, I wonder how to simplify this. If there are hundred of column to be checked then it’s make hundred of php lines.
public function edit_project_master(){ $ no_pro = 'PRJ-2017-501'; // $ na_pro = $ this->input->post('na_pro'); //value for edit $ ja_pro = $ this->input->post('i_metode'); //value for edit $ check_pro = $ this->MProject->get_det_pro($ no_pro); //get data form table //checking script foreach($ check_pro as $ res_check_pro){ if($ na_pro != $ res_check_pro['NAMA_PROJECT']){ //IF VALUE DIFFERENT $ col_name; foreach($ res_check_pro as $ key_pro => $ val_pro){ if($ res_check_pro['NAMA_PROJECT'] == $ val_pro){ $ col_name = $ key_pro; //GET COLUMN NAME } } $ data['ACTIVITY'] = "UPDATE"; $ data['OLD_VALUE'] = $ res_check_pro['NAMA_PROJECT']; $ data['NEW_VALUE'] = $ na_pro; $ data['COL_AFFECTED'] = $ col_name; $ data['TABLE_AFFECTED'] = "PM_REQUIREMENT_PROJECT"; //How to get table name automatically?? $ data['ANNOTATION'] = NULL; $ data['EXECUTOR'] = $ this->session->userdata('nip'); $ data['CHANGED_ON'] = date("Y-m-d H:i:s"); $ data['CHANGED_BY'] = $ _SERVER['REMOTE_ADDR']; $ data['STATUS'] = 1; $ this->MProject->ins_system_log($ data); } if($ ja_pro != $ res_check_pro['JADWAL_PROJECT']){ $ col_name; foreach($ res_check_pro as $ key_pro => $ val_pro){ if($ res_check_pro['JADWAL_PROJECT'] == $ val_pro){ $ col_name = $ key_pro; } } $ data['ACTIVITY'] = "UPDATE"; $ data['OLD_VALUE'] = $ res_check_pro['JADWAL_PROJECT']; $ data['NEW_VALUE'] = $ na_pro; $ data['COL_AFFECTED'] = $ col_name; $ data['TABLE_AFFECTED'] = "PM_REQUIREMENT_PROJECT"; //How to get table name automatically?? $ data['ANNOTATION'] = NULL; $ data['EXECUTOR'] = $ this->session->userdata('nip'); $ data['CHANGED_ON'] = date("Y-m-d H:i:s"); $ data['CHANGED_BY'] = $ _SERVER['REMOTE_ADDR']; $ data['STATUS'] = 1; $ this->MProject->ins_system_log($ data); } } }
This is used for saving a log file for update. So, if a data is updated then it store a log in a table.