Como dice eleazan tienes mal el bucle, ademas que no validas las entradas, intenta con esto
Código PHP:
Ver original<html>
<body>
<?php
$nombre = $_POST['nombre'] ;
$lista= "select can.titulo, art.nombreart, art.descripcionart, alb.nombrealb, dir.urldir
from artista art, cancion can, album alb, directo dir
where can.titulo='$nombre'
and can.idartista = art.idartista
and alb.idalbum = can.idalbum
";
?>
<table align="center">
<tr bgColor="silver">
<td align="center">Canción</td>
<td align="center">Artista</td>
<td align="center">Descripción</td>
<td align="center">Album</td>
</tr>
<?php
if($numfilas >0){
?>
<tr>
<td><?php echo $fila['titulo']?></td>
<td><?php echo $fila['nombreart']?></td>
<td><?php echo $fila['descripcionart']?></td>
<td><?php echo $fila['nombrealb']?></td>
<td><a href="<?php echo $fila['urldir']?>"> Click aqui</a></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html>
Otro dato, es que ya no utilizes la extension mysql si no mysqli o PDO en caso d e que programes orientado a objetos