0

問題: 私が呼び出す SQL クエリがあります。これを配列に取り込めるようにしたい(tbh私は今これを行う)が、各行から特定の値を引き出し、いくつかの数学を実行し(私はこれを持っている)、この数学の結果を値に追加するクエリの最後 (または最初) は、同じ配列または新しい配列で利用可能になります。

これは、SQL クエリの一部を形成する現在の場所を計算し、そこから各イベント (行ごとに 1 つ) の距離を計算することです。

SQL クエリ -> イベントの場所を確認 -> 現在の場所からイベントまでの距離計算を実行 -> json 出力の準備ができている (SQL クエリ + 距離) として配列に再コンパイルします。

私はxml出力のためにこれを行うことができたと付け加えますが、配列の操作に関してはまだ初心者です....

ありがとう

テラン

    // Connect to database server   
$con = mysql_connect($config_databaseServer,$config_databaseUsername,$config_databasePassword) or die(mysql_error());
mysql_select_db($config_databaseName, $con);    

// Access tables    
$sql = "SELECT * FROM " . $config . " WHERE LAT <" . $toplat . " AND LAT > " . $bottomlat . " AND LONG > " . $leftlon . " AND LONG < " . $rightlon . " AND VALIDPERIOD_STARTOFPERIOD < '" . $nowtime . "' AND VALIDPERIOD_ENDOFPERIOD > '" . $nowtime ."')";

// Execute query
$result = mysql_query($sql) or die(mysql_error());

$lata = $latitude;
$lona = $longitude;
    // Need to populate these from each row values in the query
$latb = $sqllat;
$lonb = $sqllong;                   
// need to place this in to a colum at the end of each row
    $distancefromevent = coordDistance($lata, $longa, $latb, $lonb, "m");

    // need to reform all the above so I can carry on and use the code that follows


$responses = array();
if(mysql_num_rows($result)) {
  while($response = mysql_fetch_assoc($result)) {
    $responses[] = array('dataitem'=>array_map('utf8_encode',$response));
  }
}

header('Content-type: application/json');
$json = json_encode(array($config_datexdeftype=>$responses));

$callback = $_GET[callback];
echo $callback . '(' . $json . ')';

};

return TRUE;
4

2 に答える 2

0

これはうまくいくはずです。

読みやすくするために、一部の長いコードが に置き換えられていることに注意してください[...]

// Connect to database server   
$con = mysql_connect([...]) or die(mysql_error());
mysql_select_db($config_databaseName, $con);    

// Access tables    
$sql = "SELECT * FROM " . $config . " WHERE [...]";

// Execute query
$result = mysql_query($sql) or die(mysql_error());

// Prepare the loop
$lata = $latitude;
$lona = $longitude;
$responses = array();

// Loop over each records (stay correct even if there is no record)
while($response = mysql_fetch_assoc($result)) {
    // we assume that latitude and longitude are given by
    //  columns 'lat' and 'lon' in the SQL query.
    $latb = $response['lat']; 
    $lonb = $response['lon'];
    $distancefromevent = coordDistance($lata, $longa, $latb, $lonb, "m");
    $response['distance'] = $distancefromevent;
    $responses[] = array('dataitem'=>array_map('utf8_encode',$response));
}

header('Content-type: application/json');
$json = json_encode(array($config_datexdeftype=>$responses));

$callback = $_GET[callback];
echo $callback . '(' . $json . ')';

return TRUE;
于 2012-04-26T21:41:05.990 に答える
0

SQL クエリを使用して、場所 (緯度経度) 間の距離を計算しますか?

はいの場合、これが方法です: https://developers.google.com/maps/articles/phpsqlsearch?hl=hu-HU

于 2012-04-26T21:25:36.357 に答える