Dados dos puntos con coordenadas dadas en latitud y longitud dadas en notación DECIMAL (Por ejemplo 40.2342342). Aplicando la formula de Haversine:
http://es.wikipedia.org/wiki/F%C3%B3rmula_del_Haversine
Y basandonos en este código PHP sacado de Taringa:
Es una formula imprescindible si no quereis usar API de Google Maps, que tambien dispone de una formula, que podeis usar "Asincronamente" y asi no sobrecargar el servidor. Sin embargo es mas recomendable para el SEO... En fin. Podeis usar la que os salga del... Google Maps:
https://developers.google.com/maps/documentation/javascript/reference#spherical
Dentro de la carpeta SQL esta la base de datos de municipios, provincias y comunidades de España junto con su latitud y longitud
Asi mismo dentro de la carpeta de SQL puedes encontrar la clase para conectarse y realizar consultas a la base de datos. Como sus comentarios indican es una clase hecha en 10 minutos solo para este ejemplo no utilizar para nada mas... Tienes que modificarla para utilizarla con tu usuario, contraseña y BD... etc.