No he entendido demasiado bien lo que pretendes hacer ¿Quieres mostrar un listado de canciones con toda su información?
¿Si es así, porque no utilizas un solo while con una consulta JOIN que te saque directamente toda la info (id cancion, Titulo cancion, id autor, nombre autor, etc)?
Código MySQL:
Ver originalSELECT a.ID_AUTOR
, a.NOMBRE
, m.ID_CANCION
, m.TITULO
FROM ((cancion_autor
JOIN cancion
ON ma.ID_CANCION
= cancion.m.ID_CANCION
) JOIN autor
ON ma.ID_AUTOR
= autor.a.ID_AUTOR
);