Ciao a tutti,
grazie al vostro aiuto sono quasi arrivato in fondo a quello che avevo in mente.
Siamo al passaggio finale, vi riassumo il procedimento:
Ho creato un db MySQL con una tabella markers che contiene alcuni punti con le loro coordinate.
Attraverso una pagina menu_sel.html con menu a tendina preparo la query (con un parametro id) che poi passo al file select_sel.php che la esegue.
Tutto ok, mi restituisce la tabella con il punto selezionato.
--------------------------
Ho poi integrato una parte che genera un xml a partire dalla query precedente ed ho messo sia la tabella che l'xml all'interno del ciclo while:
guardando il codice di uscita vedo sia la tabella con il punto scelto che il marker xml per quel punto. Ok fino a qui.
ecco il codice
<html>
<head><title>Recupero dati da una tabella di database</title></head>
<body>
<?php
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Si connette al database
$connection= mysql_connect ('localhost', 'root', '') or die('Non connesso : ' . mysql_error());
$db_selected = mysql_select_db('gdb', $connection) or die ('database non selezionato : ' . mysql_error());
$seltipo = $_POST['seltipo'];
$query = "SELECT * FROM markers where id='$seltipo'";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo "
$query </p>";
echo '
<table border="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC">
<th>id</th>
<th>denom</th>
<th>indir</th>
<th>lat</th>
<th>long</th>
<th>tipomarker</th>
</tr>';
while ($row = mysql_fetch_assoc($result)) {
$id = htmlentities($row['id']);
$den = htmlentities($row['denom']);
$ind = htmlentities($row['indirizzo']);
$lt = htmlentities($row['lat']);
$lg = htmlentities($row['long']);
$mrk = htmlentities($row['tipomarker']);
echo "<tr>
<td>$id</td>
<td>$den</td>
<td>$ind</td>
<td>$lt</td>
<td>$lg</td>
<td>$mrk</td>
</tr>";
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name",$row['denom']);
$newnode->setAttribute("address", $row['indirizzo']);
$newnode->setAttribute("lat", $row['lat']);
$newnode->setAttribute("long", $row['long']);
$newnode->setAttribute("type", $row['tipomarker']);
}
echo '</table>';
echo $dom->saveXML();
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
?>
</body>
</html>
------------------------------------------------
Ecco ora il punto dolente che non torna:
ora devo integrare il tutto con una pagina che visulaizza i marker relativi alla selezione sulla mappa Google.
Il codice per rappresentare i marker ce l'ho, e funziona a partire dal file creaxml.php, ma io vorrei che prendesse i dati dal mio file relativo alla selezione precedente, eccolo:
gmap.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Visualizzazione markers su Google Map tramite MySQL e PHP</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAArSysGIurcK7dOMZla-7TExQSXE4ITa1YzwIbIoQt-CisjCLm8xS2jytkVj9gPuB1NWF-zZMCsCPqMA"
type="text/javascript"></script>
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(44.0750963, 10.700323), 8);
// è qui che non deve leggere da creaxml.php ma dalla selezione precedente select_sel.php
GDownloadUrl("creaxml.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker") ;
for (var i = 0; i < markers.length; i++) {
var denom = markers[i].getAttribute("denom");
var indirizzo = markers[i].getAttribute("indirizzo");
var tipomarker = markers[i].getAttribute("tipomarker");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("long")));
var marker = createMarker(point, denom, indirizzo, tipomarker);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, denom) {
var marker = new GMarker(point);
GEvent.addListener(marker, 'mouseover', function() {
marker.openInfoWindowHtml(denom);
});
return marker;
}
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 800px; height: 600px"></div>
</body>
</html>
-------------------------
riassumendo quindi:
-seleziono una voce del menu a tendina di menu_sel.html
-passo il parametro per la query al file select_sel.php che genera la tabella relativa alla selezione e la riga xml per la selezione effettuata
-sotto la tabella vorrei vedere la mappa di google con i marker selezionati (e non ci riesco)
Grazie mille e scusate della mail kilometrica, ma altrimenti non riuscivo a spiegarmi....