Hola,
El "problema" es que al ejecutar el primer bucle llegas hasta el ultimo registro. Y a partir de ese momento mysql_fetch_array() devuelve false. No vuelve al comienzo. La solucion seria "resetear" el resultado de la consulta, hacer que vuelva a posicionarse en el primer registro. Eso lo consiges con la funcion
mysql_data_seek() pasandole 0 como registro donde posicionarse. La pondrias antes del segundo while.
Espero haber sido de ayuda.