The turkey postal codes seam not to match the correct names.
For example:
TR / 34722 / Eğitim Mah. / İstanbul
In fact the townname for 34722 is İstanbul and not Eğitim Mah.
In other countries the Place name entry matches the address for the postal code.
It seams that this isn't true for Turkey.
Just for information, "Mah." is short for Mahallesi or Mahelle and indicates a neighbourhood or district in a Turkish city. It is often found in addresses. In itself it isn't a place name.
*AAUlkKodu *=> Country Code ( ulke == country )
*AAIlNo *=> City id ( il == city -- maybe "province" can be more
suitable)
*AAIlceNo *=> District id (ilce =~ district )
*AASmtBckNo *=> Semt id (see adm. units description below)
*AAMhlKoyNo *=> Neighbourhood or Village id (Mhl - Mahalle ==
Neighbourhood) (Koy == Village)
*AAMhlKoyAdı *=> Name of the Neighbourhood or Village
*AAPostakodu *=> Post code
*AAEskiPostakodu *=> Former post code
*AABelediye(SmtBck)Adı* => Name of the Semt or Township
*AAIlceAdı *=> Name of the district
*AAIlAdı *=> Name of the city
*AAUlkeAdı *=> Country name
I also looked at the code and the fact is you data is OK.
I wanted to use the place name from the postal codes as the City name, when I look it up through the postal code. This matches in nearly all countries. But not in turkey.
The place name contains the township as far as I see. And Admin Name1 contains the city name. The township has to be placed in front of the street name.
So there is no easy solution. So your code is OK!
There is just a special solution for the turkish data and my software