Creo que he descubierto algo importante. Yo aseguraría que esto me funcionaba, por lo menos hasta las infowindow en otro proyecto. Rebusqué el archivo y vi que la única diferencia entre los dos era el query. Fijaos esto funciona:
Código PHP:
Ver original<?php
include('db_login.php');
$connection = mysql_connect($db_host, $db_username, $db_password); if (!$connection){
}
if (!$db_select){
}
?>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false&language=es">
</script>
<script type="text/javascript">
window.onload = function () {
var options = {
zoom: 5,
center: new google.maps.LatLng(40.84706, -2.944336),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), options);
<?php
?>
var image = 'http://mapicons.nicolasmollet.com/wp-content/uploads/mapicons/shape-default/color-d22328/shapecolor-color/shadow-1/border-dark/symbolstyle-white/symbolshadowstyle-dark/gradient-no/airport.png';
var latLonCenter = new google.maps.LatLng(<?php echo $lat; ?>, <?php echo $lon; ?>);
var Airport1 = '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>';
marker = new google.maps.Marker({
position: latLonCenter,
map: map,
draggable: false,
icon: image,
title: '<?php echo $icao; ?> - <?php echo $city; ?>',
Airport1: Airport1
});
var infowindow = new google.maps.InfoWindow({
content: Airport1
});
google.maps.event.addListener(marker, 'click', function () {
var n = 1;
var infowindow = new google.maps.InfoWindow({
content: '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>',
maxWidth: 320, //Ancho de ventana infowindows en px
zIndex: n // para que el último infowindows se superponga
});
infowindow.setContent(this.Airport1);
infowindow.setZIndex(n++); // superpone el último infowindows
infowindow.open(map, this);
});
<?php } ?>
}
</script>
</head>
<body>
<center><div id="map_canvas" style="width:650px; height:360px;"></div></center>
</body>
Pero si uso el query de este proyecto:
Código PHP:
Ver original//Codigo que no varia y ...
//Comienza el for y a continuación:
$query = mysql_query("SELECT * FROM airports WHERE icao='$icao'");
La diferencia es clara. En el primero obtengo todos los datos de una tabla y en la segunda cojo un dato de una y me busco más información de este dato en otra.
Pues bien, en el primero todo OK, pero en el segundo sólo se me muestra la primera entrada en la tabla. POR QUÉ?????
PD: He hecho una prueba. Puse un echo al final del for para ver cual era el último icao que cogía y para mi sorpresa solo coge el primero. Así que no llega al segundo por eso no lo muestra. Puede que no repita el for, pero es algo que no entiendo. Por qué la primera funciona y la segunda no??
PD II:Soy estúpido????? El error está claro dos querys con el mismo nombre. Voy a ver si con esto se solucionan las polylines.