Estoy empezando a programar en PHP y me encontre con pequeño problema que no le encuentro solucion. Tengo una base de datos con letras. Dentro de la db hoy una tabla de letras, otra de artistas, y otra de discos. Y tablas de relacion entre artistas y discos, y letras y artistas. La funcion que estoy haciendo lo que tiene que hacer es mostrar todos los discos de un artista y de cada disco el nombre, año, una imagen y la lista de canciones que la componen.
Lo que hago para no complicarme es pasar las consultas como cadenas de caracteres, el problema que tengo es que a la 2º consulta no la hace, pero si simplemente omito de pasar los datos como una cadena y simplemente pongo la consulta dentro de los parentesis funciona. Es decir, de esta forma funciona:
Código PHP:
function discosdeart($artista) {
$consulta = "select discos.anio,discos.nombre,discos.imagen,discos.d_id from discos inner join discart on discos.d_id=discart.d_id where discart.a_id = '$artista'";
$art = mysql_query($consulta);
while ($row = mysql_fetch_array($art)) {
echo "<div id='disco'>";
echo $row[nombre].'<br />';
echo $row[anio].'<br />';
echo $row[imagen].'<br />';
echo $row[d_id].'<br />';
$d = $row[d_id];
$letdisc = mysql_query("select letras.nombre from letras inner join letdisc on letras.l_id=letdisc.l_id where letdisc.d_id like '$d' order by letdisc.Numero");
while ($row2 = mysql_fetch_array($letdisc)) {
echo $row2[nombre].'<br />';
}
Pero de esta, NO:
Código PHP:
function discosdeart($artista) {
$consulta = "select discos.anio,discos.nombre,discos.imagen,discos.d_id from discos inner join discart on discos.d_id=discart.d_id where discart.a_id = '$artista'";
$consulta2 = "select letras.nombre from letras inner join letdisc on letras.l_id=letdisc.l_id where letdisc.d_id like '$d' order by letdisc.Numero";
$art = mysql_query($consulta);
while ($row = mysql_fetch_array($art)) {
echo "<div id='disco'>";
echo $row[nombre].'<br />';
echo $row[anio].'<br />';
echo $row[imagen].'<br />';
echo $row[d_id].'<br />';
$d = $row[d_id];
$letdisc = mysql_query($consulta2);
while ($row2 = mysql_fetch_array($letdisc)) {
echo $row2[nombre].'<br />';
}
No logro a entender por que, ademas en la misma funcion, hago lo mismo, de la misma forma y funciona.
Espero que puedan ayudarme, muchas gracias.