Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar fotos y foto principal usando JOIN

Estas en el tema de Seleccionar fotos y foto principal usando JOIN en el foro de Mysql en Foros del Web. Estoy listando un album de fotos desde mysql. Tengo una tabla de relacion id_albums / id_fotos así que hago un JOIN para consultar cual es ...
  #1 (permalink)  
Antiguo 29/10/2010, 13:00
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 8 meses
Puntos: 101
Seleccionar fotos y foto principal usando JOIN

Estoy listando un album de fotos desde mysql. Tengo una tabla de relacion id_albums / id_fotos así que hago un JOIN para consultar cual es la foto principal. El problema es que para cada foto me devuelve la foto principal, y yo necesito ese dato una sola vez. Puedo hacer eso?

Publico la consulta mas el array que obtengo:

Código MySQL:
Ver original
  1. SELECT img.id, img.titulo, img.nombre_foto, img.tecnica, img.medidas, principal.id_foto AS principal FROM fotos AS img INNER JOIN fotos_principales AS principal ON (principal.id_album = img.id_album) WHERE img.id_album = '5'

Código PHP:
Ver original
  1. ...
  2. [imagenes] => Array
  3.         (
  4.             [data] => Array
  5.                 (
  6.                     [0] => Array
  7.                         (
  8.                             [0] => 31
  9.                             [id] => 31
  10.                             [1] => Escher
  11.                             [titulo] => Escher
  12.                             [2] => escher.jpg
  13.                             [nombre_foto] => escher.jpg
  14.                             [3] =>
  15.                             [tecnica] =>
  16.                             [4] =>
  17.                             [medidas] =>
  18.                             [5] => 31
  19.                             [principal] => 31
  20.                         )
  21.  
  22.                     [1] => Array
  23.                         (
  24.                             [0] => 63
  25.                             [id] => 63
  26.                             [1] => Pajaros reciclarte-1
  27.                             [titulo] => Pajaros reciclarte-1
  28.                             [2] => pajaros_reciclarte-1.jpg
  29.                             [nombre_foto] => pajaros_reciclarte-1.jpg
  30.                             [3] =>
  31.                             [tecnica] =>
  32.                             [4] =>
  33.                             [medidas] =>
  34.                             [5] => 31
  35.                             [principal] => 31
  36.                         )
  37.  
  38.                     [2] => Array
  39.                         (
  40.                             [0] => 64
  41.                             [id] => 64
  42.                             [1] => Escher-1
  43.                             [titulo] => Escher-1
  44.                             [2] => escher-1.jpg
  45.                             [nombre_foto] => escher-1.jpg
  46.                             [3] =>
  47.                             [tecnica] =>
  48.                             [4] =>
  49.                             [medidas] =>
  50.                             [5] => 31
  51.                             [principal] => 31
  52.                         )
  53. ...
  #2 (permalink)  
Antiguo 29/10/2010, 13:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 10 meses
Puntos: 360
Respuesta: Seleccionar fotos y foto principal usando JOIN

Prueba adicionandole a tu consulta

Código SQL:
Ver original
  1. GROUP BY principal.id_foto

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 29/10/2010, 13:26
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 8 meses
Puntos: 101
Respuesta: Seleccionar fotos y foto principal usando JOIN

Gracias, pero no es lo que busco. Eso me devuelve solo la foto principal.

Mi intencion es obtener todas, y aparte un item en el array que diga [principal] => 31. La cuestion es que al momento todas las fotos dicen [principal] => 31 y yo necesito el dato una sola vez. Por una cuestion de redundancia...

Saludos!
  #4 (permalink)  
Antiguo 29/10/2010, 13:28
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 10 meses
Puntos: 360
Respuesta: Seleccionar fotos y foto principal usando JOIN

Lo que se refiere al array tiene que ver mas con php.

Que salida tienes en mysql actualmente y que salida esperarías para solucionar tu problema?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 29/10/2010, 13:31
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 8 meses
Puntos: 101
Respuesta: Seleccionar fotos y foto principal usando JOIN

Bueno, la salida es la que publiqué mas arriba. Y esperaria esto de ser posible:

Código PHP:
Ver original
  1. [principal] => 31
  2.  
  3. [imagenes] => Array
  4.         (
  5.             [data] => Array
  6.                 (
  7.                     [0] => Array
  8.                         (
  9.                             [0] => 31
  10.                             [id] => 31
  11.                             [1] => Escher
  12.                             [titulo] => Escher
  13.                             [2] => escher.jpg
  14.                             [nombre_foto] => escher.jpg
  15.                             [3] =>
  16.                             [tecnica] =>
  17.                             [4] =>
  18.                             [medidas] =>
  19.                            
  20.                         )
  21.  
  22.                     [1] => Array
  23.                         (
  24.                             [0] => 63
  25.                             [id] => 63
  26.                             [1] => Pajaros reciclarte-1
  27.                             [titulo] => Pajaros reciclarte-1
  28.                             [2] => pajaros_reciclarte-1.jpg
  29.                             [nombre_foto] => pajaros_reciclarte-1.jpg
  30.                             [3] =>
  31.                             [tecnica] =>
  32.                             [4] =>
  33.                             [medidas] =>
  34.                            
  35.                         )
  36.  
  37.                     [2] => Array
  38.                         (
  39.                             [0] => 64
  40.                             [id] => 64
  41.                             [1] => Escher-1
  42.                             [titulo] => Escher-1
  43.                             [2] => escher-1.jpg
  44.                             [nombre_foto] => escher-1.jpg
  45.                             [3] =>
  46.                             [tecnica] =>
  47.                             [4] =>
  48.                             [medidas] =>
  49.                            
  50.                         )
  #6 (permalink)  
Antiguo 29/10/2010, 13:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 10 meses
Puntos: 360
Respuesta: Seleccionar fotos y foto principal usando JOIN

Esto es codigo php.
Como es la salida de mysql?
Y desde la consulta y los datos brutos... como podrías solucionar tu problema?

Depronto en el foro de php te den una mejor ayuda
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 29/10/2010, 13:37
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 8 meses
Puntos: 101
Respuesta: Seleccionar fotos y foto principal usando JOIN

Huesos, gracias pero no se que responderte. Si hago la consulta en mysql obtengo una tabla. No se muy bien donde hacerla para mostrarte los resultados :o(.

En 5 minutos voy a mover este tema al foro de PHP a ver si a alguien se le ocurre algo. Pero quizás la mejor opcion sea no usar JOINS sino hacer una consulta aparte, no?
  #8 (permalink)  
Antiguo 29/10/2010, 13:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 10 meses
Puntos: 360
Respuesta: Seleccionar fotos y foto principal usando JOIN

mayid... no tienes forma de ejecutar esta consulta

Código SQL:
Ver original
  1. SELECT img.id, img.titulo, img.nombre_foto, img.tecnica, img.medidas, principal.id_foto AS principal FROM fotos AS img INNER JOIN fotos_principales AS principal ON (principal.id_album = img.id_album) WHERE img.id_album = '5'

En phpmyadmin por ejemplo?

o en la consola de mysql?

A esto me refiero.

Con base en esa salida... el comportamiento de tus arrays como sería?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 29/10/2010, 13:42
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 8 meses
Puntos: 101
Respuesta: Seleccionar fotos y foto principal usando JOIN

Si, yo me refiero a lo mismo. Por eso digo que lo que obtengo es una "tabla" (tabla html) con estos campos:
id titulo nombre_foto tecnica medidas principal

No se que responderte, pero ya me decanté por hacer una consulta aparte:
Código MySQL:
Ver original
  1. "SELECT id_foto FROM fotos_pricipales WHERE id_album = '9'"

Saludos y gracias!

Etiquetas: foto, fotos, join, principal, seleccionar
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 16:15.