Foros del Web » Programando para Internet » PHP »

Agrupar foto y sus comentarios/respuesta

Estas en el tema de Agrupar foto y sus comentarios/respuesta en el foro de PHP en Foros del Web. Necesito ayuda , hace 2 dias que no logro sacar la solución a este problema. Escenario: album de fotos tiene fotos, se identifica la foto ...
  #1 (permalink)  
Antiguo 05/06/2009, 00:13
zx9
 
Fecha de Ingreso: noviembre-2006
Mensajes: 29
Antigüedad: 17 años, 5 meses
Puntos: 2
Pregunta Agrupar foto y sus comentarios/respuesta

Necesito ayuda , hace 2 dias que no logro sacar la solución a este problema.

Escenario:
album de fotos tiene fotos, se identifica la foto con (foto_id)
y a cada foto se le hace comentario (contenido_comentario) y se identifica con numero de comentario (topico_p_id) desde un usuario que envia , se identifica con (envia_coment_id);

el dueño de la foto responde el comentario,
se hace UPDATE a la fila del comentario(topico_p_id) , se agrega la respuesta (contenido_respuesta) y el ID del que responde osea el duño (envia_respuesta_id).

Cada comentario y su respuesta ESTá EN LA MISMA FILA.

la insercion de comentarios y los UPDATE SET (contenido_respuesta) (topico_r_id) (envia_respuesta_id) las logro hacer bien.


El problema:
Necesito recojer los comentarios y las respuestas AGRUPADOS POR FOTO, de la siguiente forma:


photo_id 'nx'
comentario 1
respuesta 1
comentario 2
respuesta 2
comentario 3
respuesta 3


photo_id 'nz'
comentario 1
respuesta 1
comentario 2
respuesta 2
comentario 3
respuesta 3


y mostrarlo en php CON UNA SOLA CONSULTA A MYSQL.

Código MySql:
Ver original
  1. $sql_cr=$db->query("SELECT * FROM
  2.      (SELECT id,
  3.     foto_id AS id_dela_foto,
  4.     topico_p_id AS numero_de_pregunta,
  5.     topico_r_id AS numero_de_respuesta,
  6.     contedido_comentario AS cnt_coment,
  7.     contenido_respuesta AS cnt_resp,
  8.     envia_coment_id AS enviac_id,
  9.     envia_respuesta_id AS envr_id
  10.     receptor_username AS rcpt_username,
  11.     fecha_comentario AS fecha_com,
  12.     fecha_respuesta AS fecha_resp,
  13.     nombre_dela_foto AS nombre_foto
  14.     FROM comentarios_y_respuestas  
  15.     WHERE envia_coment_id='".$session->valor('usuario_id')."'
  16.     AND envia_coment_deleted=0
  17.     ORDER BY fecha_comentario DESC LIMIT 0,20 )DEV
  18.     GROUP BY DEV.foto_id ") ;

con GROUP BY me dá 1 sola fila , no me sirve

sin GROUP BY y con while($detalles_comentarios=$db->fetch_array($sql_cr)){
xxx xxx x xxxx
}

me muestra en renglones FOTO 'nx' TRAS FOTO 'nx' IGUAL y su comentario y su respuesta
Y ESTO ES LO QUE NO QUIERO

QUIERO

FOTO 'nx' y TODOS los (comentario ,su respuesta)

FOTO 'nz' y TODOS los (comentario ,su respuesta)
como está graficado mas arriba.

en lo posible con 1 sola consulta de MySql.

Sintesis:
el dueño de las fotos quiere ver FOTO, comentarios y las respuestas que 'El' dió,
una foto debajo de la otra.

Gracias por ayudarme.

.

Última edición por zx9; 05/06/2009 a las 06:33
  #2 (permalink)  
Antiguo 05/06/2009, 01:38
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Agrupar foto y sus comentarios/respuesta

Yo separaría las cosas en varias tablas, una de imágenes, otra de comentarios y otra de respuestas...
  #3 (permalink)  
Antiguo 05/06/2009, 01:50
zx9
 
Fecha de Ingreso: noviembre-2006
Mensajes: 29
Antigüedad: 17 años, 5 meses
Puntos: 2
De acuerdo Respuesta: Agrupar foto y sus comentarios/respuesta

Cita:
Iniciado por danielrivas Ver Mensaje
Yo separaría las cosas en varias tablas, una de imágenes, otra de comentarios y otra de respuestas...
Las imagenes no salen de la BD, solo texto con el ID de la foto,
comentario de esa foto y respuesta de esa foto.
no lo separo asi con una sola lectura , recojo todo.
le envio el ID del dueño de las fotos y con una sola consulta recibo TODO.

Lo que me esta costando es la querry para esta misión y el php que agrupa
(foto- (coment1/resp1, coment2/resp2, coment3/resp3))

Gracias por tu comentario.
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 07:43.