Bueno, no indicas algun tipo de error de PHP (tal vez tengas desactivado el que PHP te muestre mensajes de error? ..)
El caso que .. esa operación de fopen() junto con la consulta a tu BD puede demorarse un buen rato ..
PHP (por defecto) le otorga a cada script un tiempo de ejecución máximo que suele ser de 30 segundos ...
Sería recomendable que usases:
set_time_limit(segundos);
Si indicas 0 segundos sería "tarde lo que tarde la ejecución" .. Esto no sería recomendable hacerlo pues si hay algún tipo de porblema podrías dejar "colgado" el servidor. Usa tiempos largos y ves ajustandolo según veas lo que tarde en ejecutarse.
Otra cosa que podrías hacer es "controlar el buffer de salida" de PHP.. Osease, esos OK o K.O. mensajes los mostraras cuando termine de ejecutar esos 200 registros con sus fopen() correspondientes ...
Podrías usar:
Código PHP:
echo "<br>";
flush(); // se fuerza a PHP que entregue lo que tenga en el buffer de salida al navegador (en este caso) ...
El efecto principal es que veras en tu navegador como se vá mostrando el OK o K.O según se ejecute.
Un saludo,