mysql - 如何使用 codeigniter 插入和更新多个选定值?

标签 mysql codeigniter

所以我在多对多关系方面遇到了问题。 目前,我有 suratsurat_user 表。 如何将数据插入到 surat 中,同时将 select2 多个表单中的多个值插入到 surat_user 表中,以及如何获取数据,以便我可以更新一下。

更新: 我解决了插入问题,请参阅下面的答案

但现在我不知道如何更新这些值。 例如

surat_user

id_surat | id_user
    1    |  1
    1    |  2

如果我想删除其中“id_surat = 1”的 id_user 之一,如何更新 surat_user(在 Controller 和模型中)

目前我不知道如何将多个值提取到 select2 表单编辑中,所以这里是 mu 不完整的代码:

Controller

public function edit_sm($id_surat){
    $this->load->view('template/header');       
    $this->load->view('template/sidebar');
    $where = array('id_surat' => $id_surat);
    //$data=array('id_status'=> $this->M_sm->get_option()); 
    $data['surat'] = $this->M_sm->edit_sm($where,'surat')->result();
    $this->load->view('v_edit_surat',$data);
    $this->load->view('template/footer');
}

public function edit_sm_proses() {
    $data = array(
        'id_surat'=>$this->input->post('id_surat'),
        'no_surat'=>$this->input->post('no_surat'),
        'id_status'=>$this->input->post('id_status'),
        'id_user'=>$this->input->post('id_user')
        );
    $where = array(
    'id_surat' => $id_surat
);

    $this->M_sm->edit_sm_proses($where,$data,'surat');
    redirect('SuratMasuk');
}

型号:

public function edit_sm($where,$table){     
    $this->db->join('status_surat', 'status_surat.id_status = surat.id_status');
    return $this->db->get_where($table,$where);
}

public function edit_sm_proses($where,$data,$table){
    $this->db->where($where);
    $this->db->update($table,$data);
}

查看

<section class="content">
    <div class="row">
      <div class="col-xs-12">
        <div class="box box-solid box-primary"">
          <div class="box-header with-border">
          <h3 class="box-title">Default Box Example</h3>
          </div>
          <!-- /.box-header -->
          <div class="box-body">
            <?php foreach ($surat as $key) { ?>
            <form method="post" action="<?php echo base_url()."SuratMasuk/edit_sm_proses" ?>" enctype="multipart/form-data" />
            <input type="hidden" name="id_surat" value="<?=$key->id_surat?>">


        <div class="form-group">
          <label class="control-label col-lg-2">No Surat</label>
          <div class="col-lg-5">
            <input type="text" name="no_surat" class="form-control no_surat" placeholder="Masukkan Nomor Surat" value="<?=$key->no_surat?>">
            <span class="help-block"></span>
          </div>
        </div>
        <br>
        <br>
        <div class="form-body">
        <div class="form-group">
          <label class="control-label col-lg-2">Status</label>
          <div class="col-lg-5">
            <select class="form-control select2 id_status" name="id_status" style="width: 100%;">
                <option value="<?=$key->id_status;?>" selected="<?=$key->id_status;?>"><?php echo $key->status;?></option>
                <?php foreach ($id_status as $row) { ?>
                <option value="<?php echo $row->id_status; ?>"> <?php echo $row->status; ?></option>

                <?php } ?>
                </select>
           <span class="help-block"></span>
          </div>
        </div>
      </div>
      <br>
      <br>
      <div class="form-body">
        <div class="form-group">
          <label class="control-label col-lg-2">Disposisi</label>
          <div class="col-lg-5">
            <select class="form-control select2 id_user" name="id_user[]" style="width: 100%;">
                <option value="<?=$key->id_user;?>" selected="<?=$key->id_user;?>"><?php echo $key->nama;?></option>
                <?php foreach ($id_user as $row) { ?>
                <option value="<?php echo $row->id_user; ?>"> <?php echo $row->nama; ?></option>

                <?php } ?>
                </select>
           <span class="help-block"></span>
          </div>
        </div>
      </div>  
          </div>
          <!-- /.box-body -->
          <div class="box-footer">
           <button class="btn btn-danger" type="reset" value="reset">Reset</button>
           <button class="btn btn-info">Update</button><br>
           <a href="<?php echo base_url(); ?>SuratMasuk/">Kembali</a>
          </form>
           <?php  
                }
                ?>
          </div>
          <!-- box-footer -->
          </div>
          <!-- /.box -->
    </div>
    <!-- /.col -->
  </div>
  <!-- /.row -->

</section>
<!-- /.content -->

当前结果: result from codes above

最佳答案

设法自己解决问题。

我将我的 Controller 更改为:

public function add_sm_proses(){
    $data = array(
        'no_surat'=>$this->input->post('no_surat'),
        'id_status'=>$this->input->post('id_status')    
    );
    $insert = $this->M_sm->trans_surat_user($data);
    if($insert=1){
        redirect('SuratMasuk');
    }   else {
        echo "<h2>Gagal menambahkan data</h2>";

    }
}

将我的模型更改为:

public function trans_surat_user($data){
    $this->db->trans_start();
    $this->db->insert('surat', $data);
    $id_surat = $this->db->query('SELECT surat.id_surat FROM surat ORDER BY id_surat DESC limit 1');
    foreach ($id_surat->result() as $row) {
        $id_surat_result = $row->id_surat;
    }
    $id_user = $_POST['id_user'];
    foreach ($id_user as $data2) {
        array_push($id_user, $data2);
        $this->db->query('INSERT INTO surat_user (id_surat,id_user) VALUES ('.$id_surat_result.','.$data2.')');

    }
    $this->db->trans_complete();
}

关于mysql - 如何使用 codeigniter 插入和更新多个选定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53997974/

相关文章:

php - 使用codeigniter查询本月创建的记录

php - CodeIgniter 中 pconnect 选项的优点/缺点

python - MySQL聚合查询的聚合结果

MySQL 分组查询中相同字段值计数的结果

mysql - 单列与多列设计(针对非主键列)

php - mysql UUID as String 如何加快查询速度

PHP - 捕获 URL 变量并将其传递到下一页

codeigniter - codeigniter中基于文件的缓存

mysql - 错误代码: 1062 Duplicate entry for key 'PRIMARY'

php - 站点链接和输入字段在 iPad 中不起作用