Link to home
Start Free TrialLog in
Avatar of oh_maestro
oh_maestro

asked on

How to get multiple addresses from a SQL database into an embedded Google Map?

I have a Google map embedded on my site that dynamically generates by taking the address and zip code from a SQL database. I am not bothering w/ coordinates, and I am happy with the results so far. The code I use is listed below (with a made-up address and zip, normally would get value from the database), and works just fine for one address.

However, there are some pages that will result in multiple addresses, and I'd like to generate multiple markers on the map to represent those addresses. I am using PHP. Any ideas?
$address = "111 South Main Street";
$zip = 55555;
 
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"  src="http://maps.google.com/maps?
f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=<?php echo $address;?>,+<?php echo $zip;?>&amp;ie=UTF8&amp;z=14&amp;output=embed">
</iframe>

Open in new window

Avatar of TheVeee
TheVeee
Flag of United States of America image

If Im following you right, you may need to rethink how your storing your addresses to add a type field and a association table.  That way you will be able to distinguish which address each one is and then also put layers on the display if wanting know each one separately via  a layer.

I would have three tables....

1.  Customer table (Like before with Customer Id as primary Key)
2.  Address table with just AddressId with fields AddressId, Address,City,State, Zip
3.  The a customer address association table which would have keys CustomerId, AddressId, AddressType.

Data would look like:
Customer:

CustomerId:1111
CustomerFirstName: Larry
CustomerLastName: Smith
CustomerDOB:04/07/1992

Address Table:
AddressId:12
Address: 514 N. Meadowbrook
City: Olathe
State: KS
Zip: 66102

Customer_Address_Assocation:
CustomerId:1111
AddressId:12
AddressType:Mailing

Then sql would be Select A.CustomerFirstName, A.CustomerLastName, A.CustomerDOB, B.Address, B.City, B.State, B.Zip from CustomerTable A, AddressTable B, CustomerAddressAssocation C where
B.AddressId = C.Address_ID and A.CustomerId = B.CustomerId and B.AddressType = "MAILING"

This one would only bring back the mailing address.  If I had other address "types" for the user (physical, work, etc), I would then just have another AddressType for each one.  That way I can use the address over and over and save it one place.  
Avatar of oh_maestro
oh_maestro

ASKER

I don' t have a problem getting the correct address(es) from the database.

Say the query would return 3 addresses and zips.

I would like to have 3 markers on an embedded Google map to represent the location of the 3 houses/businesses based on the address and zip code.
ASKER CERTIFIED SOLUTION
Avatar of oh_maestro
oh_maestro

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial