Foros del Web » Programando para Internet » PHP » CodeIgniter »

Consulta a dos tablas, que repite resultados

Estas en el tema de Consulta a dos tablas, que repite resultados en el foro de CodeIgniter en Foros del Web. Buenas a todos, tengo una duda y no se si se puede hacer... Tengo una base de datos como esta: Tabla Usuarios @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 10/12/2015, 23:35
 
Fecha de Ingreso: abril-2014
Ubicación: Madrid
Mensajes: 14
Antigüedad: 10 años, 6 meses
Puntos: 0
Consulta a dos tablas, que repite resultados

Buenas a todos,

tengo una duda y no se si se puede hacer...

Tengo una base de datos como esta:

Tabla Usuarios
Código MySQL:
Ver original
  1. +------+--------------+---------------+-------------+-------------+
  2. |id_user | user_name |   password   |   nombre    |   apellido    |
  3. +------+--------------+---------------+-------------+-------------+
  4. |     1   |      foo       |     pass123    |   mariano    |  martinez  |
  5. |     2   |      bari      |     pass123    |   federico    |   lopez       |
  6. |     3   |      coky99  |     pass123   |   john          |   smith      |
  7. |     4   |      carlos    |     pass123   |   nikola       |    tesla       |
  8. +------+-------------+----------------+-------------+-------------+

Tabla Usuarios_meta
Código MySQL:
Ver original
  1. +---------+------------+----------------+------------------------+
  2. |     id     |     id_user  |   meta_key     | meta_value |
  3. +---------+------------+----------------+------------------------+
  4. |     1      |      1         |    nacionalidad |  Inglesa                  |
  5. |     2      |      1         |    idiomas        | ["Espanol","Ingles"] |
  6. |     3      |      2         |    vehiculo       |  ["coche","moto"] |
  7. |     4      |      2         |   estudios        |  universitarios      |
  8. +---------+------------+----------------+-----------------------+

Lo que no consigo es realizar una consulta a la base de datos y que me devuelva un array con cada usuario y todo su perfil completo...ya luego voy a tener que hacer busquedas dependiendo del perfil y que me devuelva todo en una sola fila de una tabla html

Si la tabla Usuarios_meta la pongo de esta forma si lo consigo pero no se hasta que punto es bueno ir metiendo columnas por cada dato que tenga que guardar, además algunos de esos datos van en json con varios datos (como el idioma o el vehículo)

Código MySQL:
Ver original
  1. +-------+---------+-----------------+----------------------+------------------+-----------
  2. |   id     | id_user |  nacionalidad   | idiomas                 |     vehiculo        | estudios
  3. +-------+---------+-----------------+----------------------+-------------------+----------
  4. |     1    |      1    |    Inglesa        |["Espanol","Ingles"]| ["coche","moto"]|
  5. |     2    |      2    |    Inglesa        |["Espanol"]           | ["coche"]            |   universitarios
  6. +-------+---------+-----------------+----------------------+------------------+-----------

¿¿¿Alguna idea??? Llevo 3 con esto y necesito ayuda

Muchas gracias a todos y espero vuestras respuestas!
  #2 (permalink)  
Antiguo 11/12/2015, 15:38
 
Fecha de Ingreso: enero-2011
Mensajes: 112
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Consulta a dos tablas, que repite resultados

Lo que quieres juntar es la info de las 2 tablas, no manejo muy bien las base de datos pero creo que las puedes hacer con JOIN de CI..
  #3 (permalink)  
Antiguo 15/12/2015, 08:33
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Consulta a dos tablas, que repite resultados

Puedes hacerlo de la siguiente manera como una consulta normal.

En tu modelo.
Código PHP:
Ver original
  1. public function extrae_algo($codigo){
  2.     $sql="SELECT * FROM TU TABLA1 A , TABLA2 B, TABLA3 C WHERE A.COD=B.COD AND C.COD=?  ";
  3.     return $this->db->query($sql, array($codigo))->result_array();
  4. }

en el controlador la recibes y la retornas cono json a la vista.

Eso es todo.

Ojo en C.COD=? el signo ? hace referencia al array($codigo) el parámetro que asignara ahi, si agregas mas parámetros tienes que seguir definiendo ? y los asignara en el orden del arreglo.

Última edición por bymorr; 15/12/2015 a las 08:35 Razón: Falto algo

Etiquetas: repite, resultados, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:08.