Cita: ¿Por qué me vienen los datos después de terminar todo el bucle?
Porque estás sumando todo en una misma cadena en vez de insertar en el dom? Mirá:
Código:
htmlfotos+='<div class=\"esquinas\" id=\"esquina'+k+'\"> <div class=\"contienefoto\" id=\"contienefoto'+k+'\" style=\"width:'+ancho+'; height:'+alto+'; border-top:0; border-left:0; border-right:1px solid #A5A7AA; border-bottom:1px solid #A5A7AA; padding:3px; background-color:#fff; position:absolute; bottom:-128px; left:50%; margin-left:'+margenizq+'\" > <a href=\"\"><img src=\"show_image.php?filename='+foto+'&width=200&h eight=200\" style=\"position:absolute; left:3px; top:3px; border:0px solid #f00; width:'+ancho+'; height:'+alto+'\" class=\"foto\" onmouseover=\"aumenta(this,'+k+')\" onmouseout=\"disminuye(this,'+k+')\" /></a> </div> <div class=\"esquinaspie\"><span class=\"pie\">'+ancho+'</span></div> </div>';
...
Podrías poner esto dentro del bucle:
Cita: $('#superior').append(htmlfotos);
Con eso estás agregando datos directamente en el dom. Funciona casi como .html() pero sin sobreeescibir datos.