Buenos Días, dado el hecho que tenía en mi base da datos un muy mal diseño de Entidad Relación como bien me decía el maestro Tadei hace meses atras, ahora estoy haciendo la migración de mis tablas a la base de datos nueva pero como no tengo mucho conocimiento de mysql la estoy haciendo con php usando jquery con ajax y me gustaría hacerlo con una query o función de mysql:
Este es mi código en el modelo de mi migración: Aquí estoy migrando mi tabla de etiquetas de mi vieja db a mi nueva db:
public function migrar($id){
$this->load->model('migracion_model');
# Migrar las estiquetas y sus informaciones de la tabla vieja para la nueva
# 1. Recuperar la data de la Etiqueta de la tabla de la Tag t1
$etiqueta = $this->db->from('tags1')->where('id',$id)->get()->row();
# 2. Verificar si existe la Etiqueta en la Tabla Etiquetas y en caso de existir recuperar su id_tag
$id_tag = $this->Texist($etiqueta->nombre);
# 3. Si existe la etiqueta -> Actualizar sus datos en caso de no Existir crearla con sus datos.
if (is_null($id_tag)) {
#1 se inserta el tag en la tabla de tags
$this->db->insert('tag',array(
'nombre' => $etiqueta->nombre,
'id_idioma' => '1',
'etiqueta' => $etiqueta->tag,
'visitas' => $etiqueta->views));
$id_tag = $this->db->insert_id();
}else{
#1 Actualizar la cantidad de visitas que ha tenido la etiqueta
$this->db->where('id',$id_tag);
$this->db->update('tag', array('visitas' => $etiqueta->views));
}
return 'Etiqueta: '.$etiqueta->nombre;
}
function Texist($tag){
$etiqueta = $this->get_uri($tag); //me retorna el id de la etiqueta si existe
$this->db->select('id')->where('etiqueta',$etiqueta);
return $this->db->from('tag')->limit(1)->get()->row()->id;
}
public function get_uri($cadena){
// Tranformamos todo a minusculas
$find = array('Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ', 'á', 'é', 'í', 'ó', 'ú', 'ñ');
$repl = array('a', 'e', 'i', 'o', 'u', 'n', 'a', 'e', 'i', 'o', 'u', 'n');
$url = str_replace ($find, $repl, $cadena);
$url = strtolower($url);
//Rememplazamos caracteres especiales latinos
// Añadimos los guiones
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($find, '-', $url);
// Eliminamos y Reemplazamos otros carácteres especiales
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
return $url;
}
}