如何限制用户使用Codeigniter将输入的重复数据添加到数据库中

时间:2019-03-07 17:59:19

标签: codeigniter

我将在View中添加一个text_box(txtname)和“添加”按钮。我必须限制用户在数据库中添加已经存在的(重复的)数据。单击添加按钮后。我应该在“模型和控制器”中进行哪些更改。  我试图复制并粘贴我的模型和控制器代码,但是由于网站的某些限制,我无法显示代码。请建议我该怎么办?Model

3 个答案:

答案 0 :(得分:0)

首先,在插入控制器之前,先检查数据库中的cat_name

控制器

public function function_name(){

   $this->load->model('CrudModel');
   $data = array('cat_name' => $name);
   $if_exists = $this->CrudModel->check_category($data);
   if($if_exists > 0){
       //Already Exists
    }else{
       //New insertion
    }
 }

模型

public function check_category($data){
   return $this->db->get_where('tbl_cateogry', $data)->num_rows();
}

答案 1 :(得分:0)

尝试这个,希望对您有所帮助。 首先通过textAddItem获取数据

//控制器保存数据功能

//获取txtAdditem

$txtAddItem = $this->modelname->method_name($this->input->post('textAddItem'));
                    if (count($txtAddItem) > 0) {
                       //already existed
                    }
    else{
    $data=array(
    $name=>$this->input->post('textAddItem')
    );
    return $query=$this->db->insert('tbl_category',$data);
    }

//模型

function method_name($textAddItem) {
        return $this->db->where('cat_name', $textAddItem)
                        ->get('tbl_category')->row_array();
    }

答案 2 :(得分:0)

public function insertMenurecord()
{
$this->load->model('CrudModel');     
$this->form_validation->set_rules('txtMenuItem', 'Menu','required|is_unique[tbl_menumaster.menu_name]'); 
if ($this->form_validation->run() == FALSE)
{
$this->session->set_flashdata('msg','&nbsp&nbsp&nbsp  Inserted record already exist');  
redirect('Welcome/displayMasterMenu');  
}
else
{
$this->CrudModel->saveMenudata();
$this->session->set_flashdata('msg','You have successfully Inserted record');       
redirect('Welcome/displayMasterMenu');
}   
}