Sí es lógico que se ejecute únicamente la primera vez, ya que el puntero de mysql_fetch_array() ya llegó al final tras la primera ejecución.
Puedes usar mysql_data_seek() para volver el puntero al primer registro:
http://www.php.net/manual/es/functio...-data-seek.php