我有2个表'userlogin'和'user'然后1有一个表单,其中1表格插入2个表,到目前为止我设法插入数据但是当它与“主键”和“外键“它有问题,你可以从下面的代码中看到id_login来自表user_sin是一个主键而id_login来自表用户是一个外键问题是当我插入数据时,来自userlogin的id_login在表用户中有它的值它没有价值,下面是我的代码,是否有任何简单的方法或我做错了什么?
控制器
function add()
{
$this->form_validation->set_rules('nama','Nama Lengkap','required');
$this->form_validation->set_rules('username','Username','required');
$this->form_validation->set_rules('password','Password','required');
$this->form_validation->set_rules('jenis_user','Jenis User','required');
$this->form_validation->set_rules('alamat','alamat','required');
$this->form_validation->set_rules('hp','hp','required');
$this->form_validation->set_rules('email','email','required');
if($this->form_validation->run()==TRUE)
{
$username=$this->input->post('username',TRUE);
$params = array(
'nama' => $this->input->post('nama',TRUE),
'username' => $this->input->post('nama',TRUE),
'password' => md5($this->input->post('password',TRUE)),
'jenis_user' => $this->input->post('jenis_user',TRUE),
'alamat' => $this->input->post('alamat',TRUE),
'hp' => $this->input->post('hp',TRUE),
'email' => $this->input->post('email',TRUE),
);
if($this->Admin_model->cek_username($username)){
if($this->Admin_model->user_daftar($username,$params))
{
set_header_message('success','Tambah Pengguna','Berhasil menambahkan pengguna');
redirect(base_url(akses().'/pengguna'));
} else {
set_header_message('danger','Tambah Pengguna','Gagal menambahkan pengguna');
redirect(base_url(akses().'/pengguna/add'));
}
} else {
set_header_message('danger','Oops.. Maaf','Username sudah ada yang menggunakan');
redirect(base_url(akses().'/pengguna/add'));
}
} else {
$meta['judul']="Tambah Pengguna";
$this->load->view('tema/header',$meta);
$d['jenis_user']=$this->Admin_model->user_akses_data();
$this->load->view(akses().'/pengguna/penggunaadd',$d);
$this->load->view('tema/footer');
}
}
模型
function user_daftar($username,$params)
{
if($this->db->insert('userlogin', $params)) {
return true;
} else{
return false;
}
}
谢谢
答案 0 :(得分:1)
在模型中使用两个不同的数组和两个不同的函数,以在两个不同的表中插入不同的数据。
答案 1 :(得分:0)
我认为以下代码可以正常工作,如果两个表的数据相同,则需要制作两个数组。
function user_daftar($username,$params)
{
if($this->db->insert("userlogin", $params)) {
$id_login=$this->db->insert_id(); // user login id
$params["id_login"]=$id_login;
$this->db->insert("user", $params);
return true;
} else{
return false;
}
}

答案 2 :(得分:0)
首先根据Table属性分离数据,然后传递两个模型
$params = array(
'nama' => $this->input->post('nama',TRUE),
'username' => $this->input->post('nama',TRUE),
'password' => md5($this->input->post('password',TRUE)),
);
$params2 = array(
'jenis_user' => $this->input->post('jenis_user',TRUE),
'alamat' => $this->input->post('alamat',TRUE),
'hp' => $this->input->post('hp',TRUE),
'email' => $this->input->post('email',TRUE),
);
$this->Admin_model->modelXXX($$params1,$params2)
模型方面的一个函数有两个参数,但有一点需要考虑,首先,将数据插入参考表$ id_login = $ this-> db-> insert_id();然后插入第二个表
function modelXXX($params1,$params2)
{
if($this->db->insert("userlogin", $params1)) {
$id_login=$this->db->insert_id(); // user login id
$params["id_login"]=$id_login;
$this->db->insert("user", $params2);
return true;
} else{
return false;
}
}