Я в основном загружаю файл для загрузки для пользователей с их информацией о моем приложении, которое разработано на codeigniter. Он получает одну строку из файла и обновляет таблицу, если запись не существует.Перейти к следующему элементу в цикле foreach, если запись уже находится в таблице
Но я хочу сначала проверить, находится ли запись уже в базе данных или нет. В противном случае он должен перейти к следующему элементу.
Следующий мой код модели.
function upload($file_name){
$file = './uploads/'.$file_name;
$this->load->library('excel');
$objPHPExcel = PHPExcel_IOFactory::load($file);
$cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();
foreach ($cell_collection as $cell) {
$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();
$row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();
$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();
if ($row == 1) {
$header[$row][$column] = $data_value;
} else {
$arr_data[$row][$column] = $data_value;
}
}
//send the data in an array format
$data['header'] = $header;
$data['values'] = $arr_data;
foreach ($arr_data as $q){
$data = array(
't_ref'=>$q['A'],
't_name'=>ucwords($q['B']),
't_cnic'=>$q['C'],
't_dept'=>$q['D'],
'status'=>$q['E']
);
$this->db->select('t_cnic');
$this->db->where('t_cnic',$q['C']);
$this->db->from('tbl_users');
$query = $this->db->get();
if($query->num_rows()>0){
break;
}else{
$this->db->insert('tbl_users',$data);
}
}
$msg = "Successfully Added";
return $msg;
}
(Перерыв не движется к следующему элементу Ofcourse)
Как я перейти к следующему элементу, а не просто остановить петлю всякий раз, когда он находит запись с CNIC уже существующий в таблице.
Обычно «продолжают»; ? – Roger
Не знаете, как изменить свой запрос в codeignitor, но вы можете использовать ON DUPLICATE KEY UPDATE/IGNORE, чтобы либо обновить существующую строку новыми значениями (даже если они совпадают с старыми значениями), либо просто проигнорировать обновление и перейти к следующему запись .. Это требует, чтобы ваша таблица имела хотя бы один уникальный индекс или индекс столбца 2, который при объединении должен быть уникальным. –