2012-11-26 49 views
0

我想插入2列到數據庫[artikel & pengarang],當我保存該表格時,它將插入$data從表格artikel和$ data到表格pengarang [來自Artikel的IDArtikel & nama_pengarang]。如何在codeigniter中插入多個列?

這是我ARTIKEL SQL:

CREATE TABLE `artikel`(
`IDArtikel` INT(11)NOT NULL AUTO_INCREMENT, 
`IDJurnal` INT(11)NOT NULL, 
`IDKategori` INT(11)NOT NULL, 
`judul` VARCHAR(255)NOT NULL, 
`abstract` text NOT NULL, 
`nama_file` VARCHAR(255)NOT NULL, 
`dilihat` INT(50)NOT NULL, 
`didownload` INT(50)NOT NULL, 
`created_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
`created_by` VARCHAR(255)NOT NULL, 
`updated_time` datetime NOT NULL, 
`updated_by` VARCHAR(255)NOT NULL, 
PRIMARY KEY(`IDArtikel`))ENGINE = INNODB DEFAULT CHARSET = utf8; 

,這是pengarang SQL:

CREATE TABLE `pengarang`(
`IDPengarang` INT(11)NOT NULL AUTO_INCREMENT, 
`IDArtikel` INT(11)NOT NULL, 
`nama_pengarang` VARCHAR(255)NOT NULL, 
PRIMARY KEY(`IDPengarang`))ENGINE = INNODB DEFAULT CHARSET = utf8; 

這是我的看法:

<h3><?= $title; ?></h3><?php echo form_open("admin/artikel/buat/"); ?> 
<table width="95%"> 
    <tr> 
     <td><b>Pilih Referensi Jurnal</b></td> 
     <td> 
      <input type="hidden" name="IDJurnal" id="IDJurnal" value="<?php echo $IDJurnal; ?>" /> 
      <input type="text" name="volume" id="volume" value="<?php echo $volume; ?>" readonly="readonly" class="sedang" /> 
     <?php echo anchor_popup('admin/artikel/popup', 'Referensi Jurnal', array('class' => 'button')); ?> 
    </td> 
</tr> 
<tr> 
    <td><b>Kategori</b></td> 
    <td> 
     <?php 
      echo form_dropdown('IDKategori', $kategori) . ""; 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td width="125"><strong>Judul</strong></td> 
     <td><input type="text" name="judul" class="panjang"></td> 
    </tr> 
    <tr> 
     <td width="125"><strong>Pengarang</strong></td> 
     <td> 
      <input type="text" name="pengarang" class="panjang"> 
     </td> 
    </tr> 
    <tr> 
     <td><b>Abstract</b></td> 
     <td> 
     <?php 
      $data = array('name' => 'abstract'); 
      echo $this->ckeditor->editor($data['name']); 
     ?> 
     </td> 
    </tr> 
    <tr> 
     <td></td> 
     <td> 
      <input type="submit" class="button" value="Simpan"> 
      <input type="button" class="button" value="Batal" onClick="javascript: history.go(-1)" /> 
     </td> 
    </tr> 
<?php 
      echo form_close(); 
?> 

這是我的控制器:

function buat() { 
    if ($this->input->post('judul')) { 
     $this->MArtikel->addArtikel(); 
     $this->session->set_flashdata('message', 'Artikel telah di buat !'); 
     redirect('admin/artikel/index', 'refresh'); 
    } else { 
     // konfigurasi ckfinder dengan ckeditor 
     $this->load->library('ckeditor'); 
     $this->load->library('ckfinder'); 
     $this->ckeditor->basePath = base_url() . 'asset/ckeditor/'; 
     $this->ckeditor->config['toolbar'] = 'Full'; 
     $this->ckeditor->config['language'] = 'en'; 
     $this->ckfinder->SetupCKEditor($this->ckeditor, '../../../asset/ckfinder/'); 

     $data['title'] = "Tambah Artikel"; 
     $data['main'] = 'admin/artikel/artikel_buat'; 
     $data['jurnal'] = $this->MJurnal->getJurnalDropDown(); 
     $data['kategori'] = $this->MKategori->getKategoriDropDown(); 
     $this->load->vars($data); 
     $this->load->view('dashboard/template'); 
    } 
} 

,這我的模型

function addArtikel() { 
    $now = date("Y-m-d H:i:s"); 
    $data = array(
     'IDJurnal' => $this->input->post('IDJurnal'), 
     'IDKategori' => $this->input->post('IDKategori'), 
     'judul' => $this->input->post('judul'), 
     'abstract' => $this->input->post('abstract'), 
     'created_time' => $now, 
     'created_by' => $_SESSION['username'] 
    ); 

    $this->db->insert('artikel', $data); 
} 

形式pengarang,可以插入多個數據

+0

它不起作用。告訴我們最新的問題 –

+0

你可以使用$ this-> db-> insert_batch($ array);看看這裏:http://ellislab.com/codeigniter/user-guide/database/active_record.html#insert –

+0

codeigniter在一個函數中插入多個表 – Zika

回答

1
+0

我們可以使用$ this-> db-> insert_batch('mytable1','mytable2'$ data); ?? – Zika

+1

沒有。你可以使用$ this-> db-> insert_batch('mytable1',array $ data1)然後$ this-> insert_batch('mytable2',array $ data2) –

+0

好吧,非常感謝,現在我理解了這個函數, ,, – Zika

0

創建模型的新功能addPengarang在模型中添加以下代碼,並根據您的要求更改數據數組的值,它將在Pengarng表中插入值

function addPengarang() { 
    $data = array(
     'IDPengarang' => 'value for IDPegarang', 
     'IDArtikel' => 10, 
     'nama_pengarang' => 'value for nama pengarang' 
    ); 

    $this->db->insert('pengarang', $data); 
}