sql >> Base de Datos >  >> RDS >> Mysql

base de datos de codeigniter moviéndose a otra tabla

Primero, obtenga el contenido de la primera tabla tableFrom e iterar sobre los resultados para insertarlos en tableTo . Puede usar este código en su modelo. No olvides $this->load->database(); en su controlador o en funció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
    }
}

@EDITAR

Pruebe este código para su controlador:

<?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();
    } 
}

Para corregir el error con la entrada duplicada para la clave 1, es posible que desee truncar la primera tabla antes de importar el contenido de la tabla dos. Puedes hacer esto con:

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

O podría actualizar filas en lugar de insertar nuevas:

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