Как обновить БД с геокодированием обратного просмотра? - PullRequest
0 голосов
/ 03 октября 2019

Я создал таблицу с широтой и длиной для нескольких почтовых индексов. Я хочу обновить свою таблицу с полным адресом, используя Google. Я успешно сделал оба. Проблема в том, что я не могу обновить все свои строки. Следующий код обновляет только первую строку в моей таблице. Пожалуйста, помогите:

$counter_connected = true;
$link = mysqli_connect($counter_host, $counter_user, $counter_password, $counter_database);
if (!$link) {
    $counter_connected = false;
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
    exit;
}

if ($counter_connected == true) {
    $db = mysqli_connect($counter_host, $counter_user, $counter_password, $counter_database);
    $query = "SELECT * FROM CanadaPostal";
    $result = $db->query($query) or die(mysql_error());

    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            $latitude = $row['latitude'];
            $longitude = $row['longitude'];
            $id = $row['id'];
            $googlemapKey = "[MY-KEY]";
            $json = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($latitude).','.trim($longitude).'&sensor=true&key='.$googlemapKey.'');
            $data = json_decode($json, true);
            $counter = 0;

            foreach ($data['results'] as $item) {
                if( $counter == 0 ) { 
                    if( !empty( $item['formatted_address'] ) ){
                        $formatted_address = $item['formatted_address'];
                        $query.$counter = "UPDATE CanadaPostal SET fulladd='".$item['formatted_address']."' WHERE id=".trim($id)."";
                        $result = $db->query($query.$counter) or die(mysql_error());
                    }
                }      
            $counter = $counter + 1; 
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...