Como unir 3 'tres' tablas de mi base de datos en Codeigniter
- 6/23/2013
- By Harry Campaz
- 17 Comentarios
Codeigniter es un framework PHP que nos facilita muchas cosas, coomo por ejemplo el Active Record.
Para unir 3 'tres' tablas en codeigniter con Active Record es mucho mas fácil que hacer una consulta directamente en la consola de nuestro sistema gestor de bases de datos, Vean.
Supongamos que tenemos estas tres tablas
Para hacer la consulta en Active record seria lo siguiente:
Al ejecutarse generara esto
Para unir 3 'tres' tablas en codeigniter con Active Record es mucho mas fácil que hacer una consulta directamente en la consola de nuestro sistema gestor de bases de datos, Vean.
Supongamos que tenemos estas tres tablas
- A = id_a, name_a,...
- B = id_b, name_b, etc
- C = id_c, A_Id_a, B_Id_b
Para hacer la consulta en Active record seria lo siguiente:
- $this->db->select('*');
- $this->db->from('A');
- $this->db->join(' C', 'A.id_a = C.A.Id_a', 'INNER');
- $this->db->join('B', 'B.id_b = C.Id_b', 'INNER');
- $result = $this->db->get();
Al ejecutarse generara esto
- SELECT *
- FROM A
- INNER JOINC
- ON C.A_Id_a = A.id_a
- INNER JOIN B
- ON B.id_b = C.id_b
17 comentarios
hola, disculpa y si quiero realizar na consulta de 3 tablas y que esos resultados en comun entre ellas me aparezca en un grid o una tabla, como le hago?
ResponderBorrarPor favor, Explica mejor tu pregunta para poder ayudarte :)
ResponderBorrartengo una vista donde hay 3 select , por ejemplo uno donde me selecciona el articulo, otro el almacen yel tercero el material, son tablas distintas pero relacionadas, como le hago para que me realice filtros de la seleccion, es decir que cuand le de en un almacen me parezca en un grid todos os rticulos exixtentes ahi, y si selecciono el material mi consulta en el grid solo sea de los articulosque hay en ese almacn y con ese material?me explique?
ResponderBorrarCreo que con active record no puedes hacer este tipo de consultas complejas, pero si te recomiendo que crees la consulta estándar y la ejecutes así
ResponderBorrar$query = $this->db->query('SELECT nombre FROM mi_tabla LIMIT 1');
$row = $query->row_array();
donde (SELECT nombre FROM mi_tabla LIMIT 1) va a ser tu consulta estandar
ah ok gracias lo checare bien , disculpa otra pregunta para importar un archivo de excel y poder visualizarlo en mi formulario como le hago, ya vi muchos ejemplo pero en realidad no se que poner en el controlador, vista y modelo
ResponderBorrarLos datos de excel debes pasarlo a tu base de datos, PHPExcel es una muy buena libreria que podemos integrar a codeigniter y nos facilita esta tarea, te dejo unos link, espero que te sirvan.
ResponderBorrarhttps://github.com/EllisLab/CodeIgniter/wiki/PHPExcel
http://myblog.dsonic.webfactional.com/using-phpexcel-with-codeigniter/
http://softpei.blogspot.com/2013/07/importando-y-exportando-excel-sobre.html
wow gracias te agradezco tu ayuda, los checo y los implemento en mi proyecto gracias los link realmente tienen informacion muy buena
ResponderBorrarOk de nada, Siempre para ayudarte :)
ResponderBorrarsi tuvieras 3 tablas usuario(idusuario,idrol,usuario,password,estado),rol(idrol,rol),persona(idpersona,nombres,email,celular)
ResponderBorrarpublic function get_usuario()
{
$sql=$this->db
->select('u.idusuario,u.idrol,r.rol,p.idpersona,p.nombres,u.usuario,u.password,u.estado')
->from('usuario as u')
->join('persona as p','u.idpersona=p.idpersona','INNER')
->join('rol as r','u.idrol=r.idrol','INNER')
->order_by('idusuario','desc')
->get();
//echo $this->db->last_query();
return $sql->result();
}
Como uno varias tablas en el controlador si es una consulta para devolver un solo resultado, creo que es en un arreglo pero nose como
ResponderBorrarComo puedi unir varias tablas en el controlador, de la consulta que realize para para obtener un solo resultado, creo que es en un arreglo pero nose como
ResponderBorrarEso lo haces en el Modelo y con el código de arriba puedes unir las tablas, para obtener el resultado deseado debes poner la condición en el select
Borrar" $this->db->select('condicion'); "
SELECT cliente.Nombre_Cliente,cuentas.num_cuenta,cuentas.Saldo,transacciones.id_trans,transacciones.Deposito,transacciones.Retiro,transacciones.Saldo_actual,transacciones.Fecha_trans,transacciones.Monto,transacciones.Hora FROM cliente,cuentas,transacciones
ResponderBorrarquiero una consulta php con join de tres tablas y me manda error alguien que pueda ayudar xfas
Estas usando algún tipo de Framework ?
BorrarAquí te dejo una buena documentación sobre join http://dev.mysql.com/doc/refman/5.0/es/join.html
Muy interesante, yo estoy justamente haciendo join de 3 y hasta de 4 tablas, solo que no tenia la idea de como hacerlo, podrías por favor poner el ejemplo completo con la vista, el modelo y el controlador, soy nuevo en esto, gracias.
ResponderBorrarHola una consulta soy novata con todo esto pero como hago para realizar un insert a tres tablas relacionadas por una clave foreanea, logré hacer la consulta pero no me sale insertar los registros a las 3 tablas...me podrias ayudar?
ResponderBorrarY como prodria unir tres tablas de bases de datos diferentes en codeigniter.
ResponderBorrar