i isimleri, enlem, boylam ve dahil olmak üzere restoran listesini içeren bir veritabanı tablo var. benim şimdiki konumundan belirli bir mesafe içinde olan tüm restoranlar seçmek istiyorum. Geçerli konum (şu anda sadece statik lat & LNG kullanıyorum) php dosyasında belirlenir. i mesafenin hesaplanması için kod bulundu:
function findDist($lat, $lng){
$currLat = 33.777563;
$currLng = -84.389959;
$currLat = deg2rad ($currLat);
$sincurrLat = sin ($currLat);
$lat = deg2rad ($lat);
$currLng = deg2rad ($currLng);
$lng = deg2rad ($lng);
return round((7926 - 26 * $sincurrLat) * asin (min (1, 0.707106781186548 * sqrt ((1 - (sin ($lat) * $sincurrLat) - cos ($currLat) * cos ($lat) * cos ($lng - $currLng))))),4);
}
ama nasıl benim seçme sorgusu içine dahil mi? i bu çalıştı:
$query = "SELECT *
FROM
eateries E
WHERE
EXISTS
(
SELECT *
FROM
eateries_hours EH, eateries_type ET
WHERE
EH.eateries_id = E.id AND ET.eateries_id = E.id
AND findDist(E.lat, E.lng) <= .5
)";
Bu işlev tanıma değil çünkü ama tabii ki çalışmaz. i, ilk başta sadece Yanal ve lngs için ayrı bir sorgu yapmak mesafeleri hesaplamak ve sonra nasılsa Yukarıdaki sorgu ile bu katılabilir? herhangi bir fikir?
teşekkürler.