Es que una vez que el apuntador que indica el próximo registro de la consulta llega al final, hay que volverlo a colocar al principio para poder volver a recorrer la consulta. Esto lo podrías hacer con la función
mysql_data_seek(). Por otro lado, si las opciones del select son exactamente iguales, podrías ir guardando el código html de las opciones en una variable y luego imprimir el contenido de esa variable las veces que quieras para no recorrer varias veces la consulta.
Saludos.