Foros del Web » Programando para Internet » PHP »

Consulta a varias tablas

Estas en el tema de Consulta a varias tablas en el foro de PHP en Foros del Web. Hola!!! Tengo tres tablas: discografia(id,titulo,año,portada) canciones(id,titulo,letra) disco_cancion(id,id_disco,id_cancion) Quiero listar todos los titulos de los discos de un grupo y despues de cada titulo del disco ...
  #1 (permalink)  
Antiguo 19/05/2011, 09:50
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 6 meses
Puntos: 0
Consulta a varias tablas

Hola!!!

Tengo tres tablas:
discografia(id,titulo,año,portada)
canciones(id,titulo,letra)
disco_cancion(id,id_disco,id_cancion)

Quiero listar todos los titulos de los discos de un grupo y despues de cada titulo del disco el título de todas las canciones de ese disco.

El problema es que consigo listar pero me saca el titulo del disco tantas veces como canciones tiene el disco
Tengo un select así:
$consulta = "SELECT discografia.titulo,canciones.titulo as tit, canciones.letra FROM discografia,canciones WHERE discografia.id=1";
$resultado = mysql_query($consulta);

while ($linea = mysql_fetch_array($resultado)) {
echo utf8_decode($linea['titulo']);
echo "<br />";
echo utf8_decode($linea['tit']);
echo "<br />";
echo utf8_decode($linea['letra']);
echo "<br />";
}
  #2 (permalink)  
Antiguo 19/05/2011, 10:06
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Consulta a varias tablas

pues el titulo de la canción debes colocarlo fuera del while
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 19/05/2011, 10:21
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Consulta a varias tablas

Pero fuera del while no tengo la variable $linea.
  #4 (permalink)  
Antiguo 19/05/2011, 10:41
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Consulta a varias tablas

Algo así podría valer:

Código PHP:
Ver original
  1. $linea = mysql_fetch_array($resultado);
  2.  
  3. while ($linea){
  4.  
  5. $titulo = $linea['titulo'];
  6. echo $titulo;
  7. echo "<br />";
  8.  
  9. do {
  10.  
  11. echo utf8_decode($linea['tit']);
  12. echo "<br />";
  13. echo utf8_decode($linea['letra']);
  14. echo "<br />";
  15.  
  16. } while ($linea = mysql_fetch_array($resultado) && $linea['titulo']==$titulo )
  17.  
  18.  
  19. }

Tienes que tener en cuenta que deberías tener ordenada la consulta por el nombre del disco (ORDER BY discografia.titulo)
  #5 (permalink)  
Antiguo 20/05/2011, 03:00
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Consulta a varias tablas

Funciona!!!!!

Muchas gracias.

Etiquetas: tablas
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 02:19.