Hotel Medina is, not surprisingly, right in the heart of the medina. I went there to ask for a room, and it looked a great place to stay, a traditional old house nicely done up...but unfortunately there were no rooms available. Ring ahead a few days in advance (73 696 384) if you want to stay.
There used to be two hotels in the medina, with the Hotel Jezira in another old house, this one I remember was practically in the sea! Since then, it has either migrated to a dryer location or has closed altogether, because try as I might, I could not find it anywhere.
In the zone touristique, a few kilometres north of town, enormous beach hotels catering for package tourists have taken over huge swathes of beach. I walked along the road at the back and there didn't seem a way for non-guests to access the sand...but bizarrely, on thew rong side of the road are a couple of cheapish-looking hotels, cashing in on the "beachside location". I can't imagine why anyone would want to stay in one of these, as you'd have to walk back into town to get anywhere near the sea, but if the Medina and Corniche hotels are full, you may not have much choice.
Route de la Corniche, Mahdia
Route Touristique BP 98, Mahdia
Route de la corniche Rejiche Mahdia, Mahdia
Latest Mahdia hotel reviews