Php 如何在表2中插入数据

Php 如何在表2中插入数据,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我有两个表'userlogin'和'user',然后有一个表单,其中一个表单插入到两个表中,到目前为止,我设法插入数据,但当涉及“主键”和“外键”时,它有问题,从下面的代码中可以看出,id_login from table userlogin是主键,id_login from table user是外键。问题是当我插入数据时,id_login from userlogin有它的值,而在table user中它没有值,下面是我的代码,有没有简单的方法或者我做错了什么 控制器 function ad

我有两个表'userlogin'和'user',然后有一个表单,其中一个表单插入到两个表中,到目前为止,我设法插入数据,但当涉及“主键”和“外键”时,它有问题,从下面的代码中可以看出,id_login from table userlogin是主键,id_login from table user是外键。问题是当我插入数据时,id_login from userlogin有它的值,而在table user中它没有值,下面是我的代码,有没有简单的方法或者我做错了什么

控制器

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

谢谢您

在模型中使用两个不同的数组和两个不同的函数在两个不同的表中插入不同的数据。

如果两个表的数据相同,我认为下面的代码可以工作,否则您需要创建两个数组

function user_daftar($username,$params)
{   
如果($this->db->insert(“userlogin”,$params)){
$id_login=$this->db->insert_id();//用户登录id
$params[“id\u login”]=$id\u login;
$this->db->insert(“用户”,$params);
返回true;
}否则{
返回false;
}

}
如果基于表属性,则首先分离数据,然后将两个数据传递给模型

 $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)

一个函数,模型旁边有两个参数,但是有一件事你必须首先考虑的是,将数据插入到引用表$IDyLogial= $$ ->dB>INTERTXIO();然后插入第二个表

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

if table字段和您在模型中使用的字段相同:-if($this->db->insert($userlogin',$params)){$this->db->insert($tablename',$params)返回true;}否则{return false;}这个问题,以及您在这里发布的任何问题,都将受益于用“you”替换“u”,用“i”替换“i”.我的表格数据库是这样的我建议你详细说明你的答案为@addisalem。这对社区用户没有帮助,我只是想提个主意。谢谢你的建议。下次我将尝试详细说明。