Foros del Web » Programando para Internet » PHP »

Duda con query a dos tablas

Estas en el tema de Duda con query a dos tablas en el foro de PHP en Foros del Web. Hola, mi duda es la siguiente: tengo dos tablas: Tabla: modelo tabla: producto En un principio necesitaba extraer sólo algunos datos de ambas tablas y ...
  #1 (permalink)  
Antiguo 27/08/2010, 18:54
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Pregunta Duda con query a dos tablas

Hola,
mi duda es la siguiente:

tengo dos tablas:
Tabla: modelo
tabla: producto

En un principio necesitaba extraer sólo algunos datos de ambas tablas y lo hacia así:

$sql="select m.idm, m.modelo, p.idm, p.idtp, p.idpro FROM modelos m,productos p WHERE m.idm=p.idm and p.idtp = ' ".$_POST[ ' idtp ' ]." ' ";

Pues ahora necesito extraer dos datos de la Tabla: modelo
y todos los datos de la Tabla:producto

¿Cómo debo realizar ese tipo de consulta?
Alguna manito por favor
  #2 (permalink)  
Antiguo 27/08/2010, 18:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 9 meses
Puntos: 1531
Respuesta: Duda con query a dos tablas

esta correcta tu sintaxis anterior, pero para lo otro que necesitas se crearon los JOIN:

$sql="select m.idm, m.modelo, p.idm, p.idtp, p.idpro FROM modelos m RIGHT JOIN productos p ON (m.idm=p.idm) WHERE p.idtp = ' ".$_POST[ ' idtp ' ]." ' ";
  #3 (permalink)  
Antiguo 27/08/2010, 19:06
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Duda con query a dos tablas

gracias por la pronta respuesta maycolalvarez, pero ahora me da un error. Lamentablemente no esta habilitada la opción en el server para mostrarlo.
¿Qué hacer...?
  #4 (permalink)  
Antiguo 27/08/2010, 19:20
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 1 mes
Puntos: 460
Respuesta: Duda con query a dos tablas

si lo depuras haciendo un or die mysql_error() no te sale nada?? y si colocas error_reporting ( E_ALL ); tampoco te muestra el error?? xq asi adivinando es muy dificil saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 27/08/2010, 19:25
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Duda con query a dos tablas

probé la consulta en PhpMyAdmin y no da error, me arroja resultado, los datos que necesito de la tabla modelo pero no muestra todos los datos de la tabla productos, que es lo que necesito.
  #6 (permalink)  
Antiguo 27/08/2010, 19:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 9 meses
Puntos: 1531
Respuesta: Duda con query a dos tablas

left o right join permiten devolver TODOS los registros de la tabla correspondiente y solo aquellos que coincidan con la misma, por eso, te saldrán campos de una tabla vacíos.

te recomiendo que leas un manual de SQL y bases de datos para comprenderlo mejor, esto ya no forma parte de php, esto es lógica y programación de SQL
  #7 (permalink)  
Antiguo 27/08/2010, 19:29
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Duda con query a dos tablas

probé con eso y nada, el explorer muestra la página en blanco.
  #8 (permalink)  
Antiguo 27/08/2010, 20:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Duda con query a dos tablas

cuando dices:
"Pues ahora necesito extraer dos datos de la Tabla: modelo
y todos los datos de la Tabla:producto"

si esos datos que dices se refieren a los campos de la tabla. Con esta tira basta

$sql="select m.dato1, m.dato2, p.* FROM modelos m,productos p WHERE m.idm=p.idm and p.idtp = ' ".$_POST[ ' idtp ' ]." ' ";

si te refieres a todos los registros de los productos.. copia lo de maycolalvarez
  #9 (permalink)  
Antiguo 27/08/2010, 20:25
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Duda con query a dos tablas

Me resulto perfecto y de lanera mas sencilla.

SELECT * FROM modelos,tproducto,productos WHERE tproducto.idtp='$idtp';

Lo extraño es que en la tabla productos tengo solo dos productos ingresados(hasta el momento), sin embargo cuando ejecuto la query me repite esos dos productos varias veces ejejejeje

Así quedó la consulta:

SELECT * FROM modelos,tproducto,productos WHERE tproducto.idtp='$idtp';

¿Cómo resuelvo ese "PEQUEÑO" detalle?
  #10 (permalink)  
Antiguo 27/08/2010, 20:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 1 mes
Puntos: 460
Respuesta: Duda con query a dos tablas

has la relacion a la tabla
Código PHP:
Ver original
  1. SELECT * FROM modelos,tproducto,productos WHERE tproducto.idtp='$idtp' and tproducto.idtp=productos .idtp
por darte un ejemplo ya q los campos los conoces tu suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 27/08/2010, 21:36
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Duda con query a dos tablas

Mmmm.. lo logro resolverlo, se me siguen repitiendo la cantidad de productos(muchos) cuando deberían ser solo dos.

Etiquetas: dos, query, 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 12:58.