Nie wiem czy to dobre rozwiązanie, czy są lepsze, ale wydaje mi się że przypisanie jakichś koordynatów dla każdego miasta jakie umieścisz w bazie. W ten sposób, mógłbyś wyszukiwać miasta, które leżą względnie najbliżej, lub najdalej. W tym temacie:
http://forum.php.pl/index.php?showtopic=192677 w którym i ty powinieneś zapytać, zamiast zakładać tego, kolega sugeruje aby zrobić to za pomocą kodów pocztowych. Też jakaś myśl

tutaj taką listę miast można pobrać:
http://www.stat.gov.pl/broker/access/prefi...stPreFiles.jspa po wrzucaniu danych do bazy, dane lokalizacyjne miejscowości, możesz zaciągać z chociażby google maps.