如果条目已在表

时间:2016-11-18 19:31:51

标签: php codeigniter

我基本上是为用户运行一个上传文件,其中包含我在codeigniter上开发的应用程序的信息。它从文件中获取一行,如果条目不存在则更新表。

但我想首先检查条目是否已存在于数据库中。万一它应该移动到下一个元素。

以下是我的模型代码。

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;
}

(休息不会转移到下一个元素)

我怎样才能移动到下一个元素而不是只是在找到表中已存在CNIC的条目时停止循环。

3 个答案:

答案 0 :(得分:2)

break替换为continue

if($query->num_rows()>0) {
    continue;
} else {
  

continue在循环结构中用于跳过当前循环迭代的其余部分,并在条件评估和下一次迭代开始时继续执行。

答案 1 :(得分:2)

你不需要打破或继续这里,只需整理逻辑:

if ($query->num_rows()==0) {
    $this->db->insert('tbl_users',$data);
}

答案 2 :(得分:0)

你为什么不这样做

if($query->num_rows() === 0){
      $this->db->insert('tbl_users',$data);
      $msg = "Successfully Added";
   } else {
      $msg = "File Already exist";
    }

    return  $msg;