Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Problema con INNER JOIN y PDO

Estas en el tema de Problema con INNER JOIN y PDO en el foro de PHP en Foros del Web. Hola amigos de este foro y disculpe el abuso... El problema que tengo es cuando consulto con PDO a dos tabla con los JOIN (cualquiera) ...
  #1 (permalink)  
Antiguo 23/04/2013, 18:20
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Problema con INNER JOIN y PDO

Hola amigos de este foro y disculpe el abuso...

El problema que tengo es cuando consulto con PDO a dos tabla con los JOIN (cualquiera) no me lanza ningun resultado.

Por favor alguien sabe como resolver ese problema le muestro un ej.

Código PHP:
Ver original
  1. $consulta2 = "SELECT * FROM usuarios INNER JOIN  registro ON usuario.id = registro.id_user";
__________________
Visita a Publiventa donde compras y vendes de todo
  #2 (permalink)  
Antiguo 23/04/2013, 18:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con INNER JOIN y PDO

Prueba la consulta en PhpMyAdmin, si no obtienes resultados, entonces está mal planteada.

Si obtienes resultados, entonces muestra cómo ejecutas y lees la consulta.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/04/2013, 18:32
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con INNER JOIN y PDO

ya lo he hecho pero no me muestra absolutamente nada y cuando le quito el join (es decir consulto una sola tabla) me muestra los resultado de esa tabla.

sera que PDO no soporta lo JOIN?
__________________
Visita a Publiventa donde compras y vendes de todo
  #4 (permalink)  
Antiguo 23/04/2013, 18:41
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
Respuesta: Problema con INNER JOIN y PDO

Código PHP:
Ver original
  1. $consulta2 = "SELECT * FROM usuarios INNER JOIN  registro ON usuario.id = registro.id_user";

no sé si será un error de tipeo aquí, pero en el FROM tienes la tabla "usuarios" y en el INNER JOIN usas "usuario" en singular

prueba así:

Código PHP:
Ver original
  1. $consulta2 = "SELECT * FROM usuarios u INNER JOIN  registro r ON u.id = r.id_user";

Espero te sea útil, saludos!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #5 (permalink)  
Antiguo 23/04/2013, 19:01
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con INNER JOIN y PDO

Cita:
Iniciado por gustavopino Ver Mensaje
sera que PDO no soporta lo JOIN?
Seguro que soporta eso y mucho más.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 23/04/2013, 19:11
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con INNER JOIN y PDO

voy a probar a ver...
__________________
Visita a Publiventa donde compras y vendes de todo
  #7 (permalink)  
Antiguo 23/04/2013, 19:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con INNER JOIN y PDO

Activa las excepciones y mete un try catch, a ver que dice el error.

Edito: Revisa que no tengas campos con el mismo nombre en ambas tablas porque te va a dar error y debes llamarlos como hiciste en el ON (u.id = r.id_user) en vez del *
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 23/04/2013 a las 19:24
  #8 (permalink)  
Antiguo 23/04/2013, 19:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con INNER JOIN y PDO

¿Ya probaste en el phpMyAdmin o en el RDMBS que uses?
  #9 (permalink)  
Antiguo 23/04/2013, 19:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con INNER JOIN y PDO

Código MySQL:
Ver original
  1. FROM usuarios U INNER JOIN  registro R ON U.id = R.id_user;
Si esto no te devuelve datos, y efectivamente el campo id_user de Registro es FK de la PK de Usuario, entonces simplemente no hay datos que cumplan el criterio (y es una tabla MyISAM), o la tabla Registro está vacía...

Cita:
sera que PDO no soporta lo JOIN?


La consulta no la ejecuta el PDO, sino MySQL. En tanto le llegue la consulta como la escribiste, debe devolver resultados, siempre que haya datos relacionados entre ambas tablas.

Cita:
cuando le quito el join (es decir consulto una sola tabla) me muestra los resultado de esa tabla.
Si le quitas el JOIN y pones las tablas separadas por una coma, estás generando un producto cartesiano donde MySQL cruza aquellos campos que tienen el mismo nombre. Pero en tu caso, si existe un ID de Registro, lo estaría cruzando con el ID de Usuario, y eso es un error.

Si en lugar de eso, consulta sólo Usuario y te devuelve datos, lo único que nos dice eso es que la tabla Usuario tiene datos... Pero no dice si hay datos relacionados en la otra.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 23/04/2013, 19:59
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con INNER JOIN y PDO

Cita:
Iniciado por gnzsoloyo Ver Mensaje

Si le quitas el JOIN y pones las tablas separadas por una coma, estás generando un producto cartesiano donde MySQL cruza aquellos campos que tienen el mismo nombre. Pero en tu caso, si existe un ID de Registro, lo estaría cruzando con el ID de Usuario, y eso es un error.
Si amigo yo se que si lo pongo por coma genero un producto cartesiano pero igual gracias ya solucione el asunto con la ayuda de ustedes.

__________________
Visita a Publiventa donde compras y vendes de todo

Etiquetas: pdo, sql
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 20:18.