2013-04-10 5 views
0

지난밤에이 질문을 게시했지만 잘못 말했지만 올바르게 설명하지 않았습니다. 내가 만든 소방 매핑 일에 사용하기 위해 googlemaps 지오 코딩 결과를 캐시에 넣으려고하므로 결과를 캐시해야하므로 Google의 한계에 가까워지고 있습니다. 도움!캐시 Google지도 지오 코딩 결과가 있지만 내 코드가 깨졌습니다

코드는 작동하지만 주소가 이미 데이터베이스에 있는지 여부에 관계없이 코드가 실행될 때마다 새 SQL 레코드가 만들어집니다. 그것은 단지 한때 구글을 호출 한 다음 데이터를 저장하는 것, 그리고 그것은 데이터베이스에서 데이터를로드 좋아, 그것은 나머지 작품처럼 보이지만 난 어디 잘못 가고 있는지 볼 수 없다 .. 내가 말했듯이 그것은 새로운 레코드를 만듭니다 매번 코드가 실행될 때마다 동일한 동일한 레코드로 가득 찬 데이터베이스로 끝날 것입니다. 내 두뇌는 아프지 만 소방차가 계속해서 화재를 일으킬 수 있도록 계속 노력할 필요가 있습니다. :)

아, Google지도에서 지오 코딩 결과 (T & C에서 허용하는대로)를 사용하고 있으며이 코드는 실제로 작동시키기위한 것입니다. 나는 그것이 의미가되기를 바랍니다 누군가가 도울 수 있기를 바랍니다 ... 감사 :

<?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; 

?> 

답변

0

strpos의 결과를 출력하려 했습니까? 논리가 올바르지 않게 보입니다. 문제는 if 조건에 있습니다. DB에서 레코드는 어떻게 생깁니 까?

+0

레코드가 모두 업데이트되고 새로 고침을하면 Google에 처음 호출 한 후 데이터베이스에서 정보를 읽는 것으로 보입니다. 나는 좀 더 놀았으며, 매번 새로운 레코드를 생성하는 대신 하나의 SQL 레코드를 업데이트하기 때문에 마지막 SQLquery에서 INSERT 대신 UPDATE를 사용하면 잘 작동하는 것처럼 보입니다. 그러나 코드가 실행될 때마다 동일한 정보로 레코드를 무의미하게 업데이트합니다. 다시 나는 내가 이해하고 있기를 바란다! 나는 가면서 배우는 것을 시도하고있다. 나는 느린 학습자이다! LOL – user1508918

관련 문제