Hola Jakuam!
ANtes que nada una sugerencia, separa Js de PHP para organizar y detectar mas rapido los errores; tambien podes usar Firebug (tool para Firefox) para detectar errores y demas.
Lo que haria seria algo parecido a:
1-armar JS con llamada Ajax para obtener los datos del servidor
2-en el servidor hacer la consulta a la base de datos y retornar un xml con los resultados
3-a la vuelta del servidor, parsear el xml con Dom y armar los markers con la informacion.
Acá va algo de ayuda en codigo, para los pasos 1 y 3:
Código:
function getMyMarkers() {
var request = GXmlHttp.create();
//tell the request where to retrieve data from.
request.open('GET', 'file.php', true);
//tell the request what to do when the state changes.
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = request.responseXML;
var markers = xmlDoc.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var lng = markers[i].getAttribute("lng");
var lat = markers[i].getAttribute("lat");
//check for lng and lat so MSIE does not error
//on parseFloat of a null value
if(lng && lat) {
var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
var html = '<div>new marker</div>';
var iconImage = markers[i].getAttribute("icon");
var marker = createMarker(latlng, html, iconImage);
map.addOverlay(marker);
}
} //for
} //if
} //function
request.send(null);
}
Para el paso 2:
Código PHP:
$result = mysql_query(".....");
$count = mysql_num_rows($result);
//header('Content-Type: text/html');
//echo ($count);
header('Content-Type: text/xml');
if($count > 0){
$xml_data ="<?xml version='1.0' encoding='UTF-8'?>";
while ($row = mysql_fetch_assoc($result)) {
$marker = "<marker lat='".$row["lat"]."'";
$marker .= "lng='".$row["lng"]."'";
$marker .= "zoom='".$row["zoom"]."'></marker>";
$xml_data .= $marker;
}
$xml_data .="</xml>";
mysql_close($conn);
//armar el xml
echo $xml_data;
}
Espero q haya servido de ayuda...exitosssss