A ver si consigo explicar bien lo que me gustaría conseguir.
Antes de nada, tengo una tabla llamada articulos y dentro de ella dos columnas, una llamada titulo y otra llamada coordenadas.
De tal modo que puedo tener los siguientes registros (son burdos ejemplos):
Cita:
Si por ejemplo, estoy viendo la sección Madrid, para separar sus coordenadas en latitud y longitud hago lo siguiente:----- articulos -------
titulo ----- coordenadas
Madrid ----- 111111,111111
Barcelona ----- 222222,222222
Valencia ------ 333333,333333
Canarias ------ 4444444,444444
Bilbao ------ 555555,555555
Sevilla ------ 666666,666666
titulo ----- coordenadas
Madrid ----- 111111,111111
Barcelona ----- 222222,222222
Valencia ------ 333333,333333
Canarias ------ 4444444,444444
Bilbao ------ 555555,555555
Sevilla ------ 666666,666666
Código PHP:
$query = "SELECT coordenadas from articulos where url = '$url'";
$result = @mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$coordenadas = $row['coordenadas'];
$coordenada1 = explode(",", $coordenadas);
$latitud1 = $coordenada1[0];
$longitud1 = $coordenada1[1];
}
$latitud1 = 111111
$longitud1 = 111111
Al separar la longitud y la longitud de Madrid, luego hago otra consulta para calcular las distancias al resto de ciudades:
Código PHP:
$consulta = mysql_query("SELECT titulo, coordenadas FROM articulos ORDER BY titulo ASC");
while($row = mysql_fetch_array($consulta)){
$coordenadas = $row['coordenadas'];
$coordenada2 = explode(",", $coordenadas);
$latitud2 = $coordenada2[0];
$longitud2 = $coordenada2[1];
$distancia = (3958*3.1415926*sqrt(($latitud2-$latitud1)*($latitud2-$latitud1) + cos($latitud2/57.29578)*cos($latitud1/57.29578)*($longitud2-$longitud1)*($longitud2-$longitud1))/180)*1.609344;
$kilometros = number_format(($distancia),2,".",",");
echo "$row[titulo] a $kilometros km";
}
Cita:
Y esta es mi pregunta, ¿cómo puedo hacer para que me muestre los resultados ordenados de menor distancia a mayor distancia? Es decir:Barcelona a 534 km
Bilbao a 463 km
Canarias a 1693 km
Sevilla a 906 km
Valencia a 315 km
Bilbao a 463 km
Canarias a 1693 km
Sevilla a 906 km
Valencia a 315 km
Cita:
Espero que se haya entendido.Valencia a 315 km
Bilbao a 463 km
Barcelona a 534 km
Sevilla a 906 km
Canarias a 1693 km
Bilbao a 463 km
Barcelona a 534 km
Sevilla a 906 km
Canarias a 1693 km
Gracias de antemano a cualquiera que me pueda ayudar.
Un saludo!
PD: no sabía si meterlo en PHP o en MySQL, así que si hay que mover el hilo al foro adecuado... adelante!