Đầu tiên, lấy nội dung của bảng đầu tiên tableFrom
và lặp lại các kết quả để chèn chúng vào tableTo
. Bạn có thể sử dụng mã này trong mô hình của mình. Đừng quên $this->load->database();
trong bộ điều khiển hoặc trong chức năng của bạn.
function insert_into() {
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->insert('tableTo', $r); // insert each row to another table
}
}
@EDIT
Hãy thử mã này cho bộ điều khiển của bạn:
<?php
class fdm extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library(array('table','form_validation'));
$this->load->helper('url'); // load model
$this->load->model('cbc','',TRUE);
}
function index() {
$this->load->database();
$this->load->model('cbc','',TRUE);
$this->cbc->insert_into();
}
}
Để sửa lỗi với mục nhập trùng lặp cho khóa 1, bạn có thể muốn cắt bớt bảng đầu tiên trước khi nhập nội dung từ bảng hai. Bạn có thể làm điều này với:
function insert_into() {
$this->db->truncate('tableTo');
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->insert('tableTo', $r); // insert each row to another table
}
}
Hoặc bạn có thể cập nhật các hàng thay vì chèn mới:
function insert_into() {
$q = $this->db->get('tableFrom')->result(); // get first table
foreach($q as $r) { // loop over results
$this->db->update('tableTo', $r, array('id' => $r->id)); // insert each row to another table
}
}