Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2011, 07:53
solovoy
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 4 meses
Puntos: 1
No funciona cuando paso una cadena

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.