Brockston
Brockston

Reputation: 11

Inserting latitude and longitude into MySQL database

Have been trying for days on this code to insert latitude and longitude generated from google api. Heere is my code and error:

//Use the above code before the file_get_content. means, use the following code
$address1 = str_replace(" ", "+", $address1);
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address1&sensor=false&region=GTH");
$json = json_decode($json);

$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[1]->{'geometry'}->{'location'}->{'lng'};

//DATABASE INSERTION
include'include/convert.php';
     $sqlquery3="insert
     into
     corp
     (lat,lon) "."VALUES
     ('$lat','$long')";

Error Notice: Undefined offset: 1 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\gg\companyregistration.php on line 207

Notice: Trying to get property of non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\gg\companyregistration.php on line 207

Notice: Trying to get property of non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\gg\companyregistration.php on line 207

Notice: Trying to get property of non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\gg\companyregistration.php on line 207

Upvotes: 0

Views: 1202

Answers (1)

Kevin Labécot
Kevin Labécot

Reputation: 1995

Why are you mixing index 0 and index 1 ?

Google API is returning an array of addresses. If your request returns 1 possible answer, results array will contain only 1 entry.

To get the latitude & longitude of the first address :

$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};

By doing :

$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[1]->{'geometry'}->{'location'}->{'lng'};

You are using the latitude of the 1st result and the longitude of the 2nd result (in your case there is no second result).

Upvotes: 2

Related Questions