Pues si .. haces dos veces una consulta igual ...
Si tu necesitas obtener cierta "cabecera" de ese listado que no se repita puedes usar un condicional para ver si ya pusistes esa cabecera o no (útil también para realizar listados cuando cambie por ejemplo tu Edificio y así agrupar listados por ejemplo ...)
Código PHP:
$nombre='';
$result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($result)){
if ($row['nombre'] != $nombre){
echo "<b>Edificio</b> : ". $row['nombre']." (Nivel ".$nivel.")<br>";
echo "<b>Tiempo Crear Edificio</b> : ". $row['tiempo'] * ($nivel + 1)." eg.<br>";
echo "<b>Descripción</b> : ". $row['descripcion']."<br><br>";
}
$nombre = $row['nombre'];
echo "<b>Materiales subir nuevo nivel.</b><br><br>";
echo $row['recurso']." - Cantidad: ".$row['cantidad'] * ($nivel + 1)."<br>";
}
Para que esta técnica funcione correctamente es necesario que se ordene el resultado de tu consulta por el campo que vas a usar como "agrupador" para definir esa "cabecera".
Código PHP:
//mirar en que archipielago estoy
$sql = "SELECT edificios.tiempo, edificios.descripcion, edificios.id as idedificio, islas_edificios.nivel, recetas_edificios.cantidad, edificios.nombre, islas_edificios.nivel, recursos_primarios.recurso";
$sql = $sql ." FROM (recetas_edificios INNER JOIN recursos_primarios ON recetas_edificios.id_recurso_primarios = recursos_primarios.Id) INNER JOIN (islas_edificios INNER JOIN edificios ON islas_edificios.id_edificio = edificios.Id) ON recetas_edificios.id_edificio = edificios.Id ";
$sql = $sql. " WHERE islas_edificios.id_isla = " .$_SESSION['idisla']." and edificios.id = ".$_GET['id']." ORDER by edificios.nombre";
Un saludo,