In je eerste vraag, geloof ik dat je de lengtegraden in de aftrekking hebt omgekeerd. De sferische wet van cosinus is:
d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2−long1))*R
Als lat1 wordt vervangen door tblcity.latitude, moet long1 worden vervangen door tblcity.longitude. Ik denk dat je per ongeluk long2 hebt vervangen in je zoekopdracht. Werkt deze beter?
SELECT tblcity.city, tblcity.latitude, tblcity.longitude,
truncate((degrees(acos( sin(radians(tblcity.latitude))
* sin(radians(45.266708))
+ cos(radians(tblcity.latitude))
* cos(radians(45.266708))
* cos(radians(-73.616257 - tblcity.longitude) ) ) )
* 69.09*1.6),1) as distance
FROM tblcity HAVING distance < 10 ORDER BY distance desc
Ik heb je tweede vraag nog niet onderzocht, maar hopelijk helpt dat.