Buenas soy un poco novato en php y me di cuenta que repito varias veces la funcion "$row = mysql_fetch_assoc($result);"
Os pongo el codigo y asi vereis a lo que me refiero :
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']."";
//crear recordset
$result = mysql_query ($sql);
//comprobar select correcto
if (!$result){
echo('Query failed: ' . mysql_error());
exit;
}
//asociar filas al resultado y mostrar todas las islas del archipielago
$row = mysql_fetch_assoc($result);
$nivel = $row['nivel'];
echo "<b>Edificio</b> : ". $row['nombre']." (Nivel ".$nivel.")<br>";
echo "<b>Tiempo Crear Edificio</b> : ". $row['tiempo'] * ($nivel + 1)." seg.<br>";
echo "<b>Descripción</b> : ". $row['descripcion']."<br><br>";
$id_edificio = $row['idedificio'];
echo "<b>Materiales subir nuevo nivel.</b><br><br>";
$result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($result)){
echo $row['recurso']." - Cantidad: ".$row['cantidad'] * ($nivel + 1)."<br>";
}
Si os dais cuenta pongo dos veces el mysql_fetch_assoc($result) , una para mostrar unos datos y otro para hacer el bucle.
¿Esta bien hecho esto? ¿No habria forma de que pueda volver a ver los datos sin tener que recargar el row?.
Venga un saludo.