I remember you get it after beating May beside the Weather Institute after you save the people in the Weather Institute
You fly to Mauville City and then you go left.
You go to your friend May in Fortree City and challenge her. If you beat her she will give you fly.
Your rival gives it to you after you defeat them just before you enter Fortree City.
Sootopalis City
you fly or restart your game
Ever Grande City
you can get one in petalburg city
Swelleow can. Pelliper can. Swablu can. Altaria can.
No, I don't think so.
sorry but there isnt one. :(
the third badge in sapphire is at mauville city(north of slateport city)
Staleport City and LilyCove City