昨夜この質問を投稿しましたが、言い方が間違っていて、正しく説明していませんでした。私が作成した消防マッピングで使用するためにGooglemapsジオコーディング結果をキャッシュしようとしていますが、Googleの制限に近づいているため、結果をキャッシュする必要があります。ヘルプ!
以下のコードは多少機能しますが、アドレスがデータベースに既に存在するかどうかに関係なく、コードが実行されるたびに新しい sql レコードが作成されます。Googleを1回だけ呼び出してデータを保存し、データベースからデータを正常にロードし、残りは機能しているように見えますが、どこが間違っているのかわかりません..私が言ったように、新しいレコードを作成しますコードが実行されるたびに、同じ同一のレコードでいっぱいのデータベースになってしまいます。頭が痛いですが、消防車の火事の手伝いを続けられるように、これを機能させる必要があります。:)
ああ、私は(T&Cで許可されているように)Googleマップでジオコーディングの結果を使用していますが、このコードは実際にはそれを機能させるためだけのものです. それが理にかなっていることを願っており、誰かが助けてくれることを願っています...ありがとう:)
<?php
$jobadd = "1000 BURWOOD HWY, BURWOOD";
// connect to the database
include('connect-db.php');
// get results from database and find needle
$result = mysql_query("SELECT * FROM geocache")
or die(mysql_error());
while($row = mysql_fetch_array( $result ))
{
$needle = '' . $row['address'] . '';
if (strpos($jobadd,$needle) !== false)
{
$status = "CACHED";
$latitude = '' . $row['latitude'] . '';
$longitude = '' . $row['longitude'] . '';
}
else
{
$status = "GOOGLE";
$address2 = "$jobadd, Victoria, Australia";
define("MAPS_HOST", "maps.google.com");
$base_url = "http://" . MAPS_HOST . "/maps/api/geocode/xml";
$request_url = $base_url . "?address=" . urlencode($address2) ."&sensor=false";
$xml = new SimpleXMLElement(file_get_contents($request_url));
$latitude = $xml->result->geometry->location->lat;
$longitude = $xml->result->geometry->location->lng;
// save the data to the database
mysql_query("INSERT geocache SET address='$jobadd', latitude='$latitude', longitude='$longitude' ")
or die(mysql_error());
}
}
echo $status;
echo '<BR>';
echo $jobadd;
echo '<BR>';
echo 'LAT:';
echo $latitude;
echo '<BR>';
echo 'LON:';
echo $longitude;
?>