<?php
$objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database");
$objDB = mysql_select_db("dataname");
mysql_query("SET NAMES UTF8");
$strSQL = "SELECT * FROM placeinfo";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$custlat1 = $_REQUEST['lat'];
$custlong1 = $_REQUEST['long'];
$i=1;
while($objResult = mysql_fetch_array($objQuery))
{
$custlat2 = $objResult["placelat"];
$custlong2 = $objResult["placelong"];
$pi80 = M_PI / 180;
$custlat1 *= $pi80;
$custlong1 *= $pi80;
$custlat2 *= $pi80;
$custlong2 *= $pi80;
$r = 6372.797; // mean radius of Earth in km
$dlat = $custlat2 - $custlat1;
$dlng = $custlong2 - $custlong1;
$a = sin($dlat / 2) * sin($dlat / 2) + cos($custlat1) * cos($custlat2) * sin($dlng / 2) * sin($dlng / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
// Distance in KM
$km = round($r * $c, 2);
// Distance in Miles
$miles = round($km * 0.621371192, 2);
echo 'The distance between '.$custlat1.' and '.$custlat2.' is '.$km.'Km ('.$miles.' miles).' . "<br>";
}
?>
โค้ดที่แก้ไขเป็นอย่างนี้ค่ะ
ซึ่งตอนนี้ผลรับที่ได้ มันไม่ถูกต้องอ่ะค่ะ มันคำนวณ record แรกออกมาถูกต้อง แต่ record ต่อๆมาคำนวณผิดอ่ะค่ะ
ตามนี้
The distance between 0.2543053803234 and 0.24242759445883 is 98.39Km (61.14 miles).
The distance between 0.0044384661921797 and 0.24207856351502 is 10902.8Km (6774.69 miles).
The distance between 7.7465848791991E-5 and 0.24257882723851 is 11089.53Km (6890.71 miles).
The distance between 1.3520341192723E-6 and 0.24286965145177 is 11086.12Km (6888.6 miles).
เลยไม่ทราบว่าโค้ดที่ใช้ในส่วนของ while นั้นถูกต้องหรือเปล่าอ่ะค่ะ