Cześć ,

Pisząc drobny skrypt do dekodowania adresów na współrzędne aby później wyświetlić je na mapie , natknąłem problem z zapętleniem .
Toteż doszło mi pytanie : jak pobrać pole adres wiersza pierwszego, wykonać geolokalizację , oraz otrzymane współrzędne zapisać w bazie
Jak można to wykonać ?

Poniżej kod:

  1. <?php
  2.  
  3. //Łączenie z bazą
  4. $polaczenie = mysql_connect('localhost', 'root');
  5. $baza = mysql_select_db('gmaps', $polaczenie);
  6. mysql_query("SET NAMES utf8");
  7.  
  8. //pytanie
  9. $zapytanie = "SELECT * FROM markers";
  10. $rezultat = mysql_query($zapytanie, $polaczenie);
  11.  
  12.  
  13. $row = mysql_fetch_assoc($rezultat);
  14. $address = urlencode($row['address']);
  15. $json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false");
  16. $decoded = json_decode($json);
  17. echo $lat = $decoded->results[0]->geometry->location->lat;
  18. echo " , ";
  19. echo $long = $decoded->results[0]->geometry->location->lng;
  20. echo "<br />";
  21.  
  22. $ins = @mysql_query("UPDATE `gmaps`.`markers` SET `lat` = $lat , `lng` = $long ");
  23. if($ins) echo "</br> Zaktualizowano rekord";
  24. else echo "Nie wykonano aktualizacji rekordu";
  25.  
  26.  
  27.  
  28.  
  29. ?>


Trochę czytania forum , naniesienie poprawek , działa :

  1. <?php
  2.  
  3. //Łączenie z bazą
  4. $polaczenie = mysql_connect('localhost', 'root');
  5. $baza = mysql_select_db('gmaps', $polaczenie);
  6. mysql_query("SET NAMES utf8");
  7.  
  8. //pytanie
  9. $zapytanie = "SELECT * FROM markers";
  10.  
  11. $rezultat = mysql_query($zapytanie, $polaczenie);
  12.  
  13.  
  14. while ($row = mysql_fetch_assoc($rezultat))
  15. {
  16. $id=$row['id'];
  17. $address = urlencode($row['address']);
  18. $json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false");
  19. $decoded = json_decode($json);
  20. echo $lat = $decoded->results[0]->geometry->location->lat;
  21. echo " , ";
  22. echo $long = $decoded->results[0]->geometry->location->lng;
  23. echo "<br />";
  24.  
  25. $ins = @mysql_query("UPDATE `gmaps`.`markers` SET `lat` = $lat , `lng` = $long WHERE id=$id");
  26. if($ins) echo "</br> Zaktualizowano rekord";
  27. else echo "Nie wykonano aktualizacji rekordu";
  28. }
  29.  
  30.  
  31.  
  32. ?>
  33.