Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/01/2016, 05:25
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Simplificar varias consultas dentro de while

Tu problema no es con PHP, sino con MySQL.
Deberías haber potesdo la pregunta en el foro de MySQL..

Por empezar, no entiendo para qué recorrer canción por canción, para obtener sus ID, si lo que luego haces es consultar por los autores de las mismas.
¿Por qué no haces un único JOIN y obtienes todo?
SUponiendo que pueda haber más de un autor por cancion, pero los quieras todos agrupados:
Código MySQL:
Ver original
  1. SELECT  c.TITULO, GROUP_CONCAT(a.NOMBRE) Autores,
  2. FROM cancion c
  3.     INNER JOIN cancion_autor ma on c.idcancion = ma.idcancion
  4.     INNER JOIN autor a ON a.ID_AUTOR = ma.ID_AUTOR
  5. GROUP BY c.idcancion
  6. ORDER BY c.TITULO

Si quieres la lista autor por autor:
Código MySQL:
Ver original
  1. SELECT  c.TITULO, a.NOMBRE  Autores,
  2. FROM cancion c
  3.     INNER JOIN cancion_autor ma on c.idcancion = ma.idcancion
  4.     INNER JOIN autor a ON a.ID_AUTOR = ma.ID_AUTOR
  5. ORDER BY1, 2
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)