Erreur lors du chargement php qui donne xml

apprentiDev Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -  
apprentiDev Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je dois faire apparaitre un grand nombre de marqueur sur une API google map.
Sur un tutoriel j'ai trouvé une méthode pour interroger une base de donnée ( j'utilise MySQL et PHPMyAdmin ), pour que le php puisse générer du XML. Cependant En plaçant différents alerts je me suis aperçut que au commencement de la boucle for le script ne s'exécute plus. Or c'est à partir de ce moment que doive être prélevé les coordonnées des points pour afficher les marqueurs.
Il faut savoir que dans la base de donnée les coordonnées sont stockés dans une colonne de type point et on subit un codage avec la fonction Polygone. Avec les requêtes SQL SELECT Y(coord_scene)FROM scene et SELECT X(coord_scene)FROM scene on récupère les chiffres originaux.

Voici le code de la page principal :

<script language="javascript">
alert("Script PHP XML");
</script>
<script type="text/javascript">
////////////////////// Permet de créer les marqueurs///////////////
function createMarker(point) {
var marker = new GMarker(point);
var html = "<b><a href=\""+url+"\">"+nom+"</a></b>";
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
return marker;
}

//////////////// La fonction inintialise permert d'affiche l'API de google map ////////////////

function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(43.57691664771851, 1.402451992034912),15);
map.addControl(new GMapTypeControl());
map.removeMapType(G_HYBRID_MAP);
map.addMapType(G_PHYSICAL_MAP);
map.setMapType(G_PHYSICAL_MAP);
map.addControl(new GOverviewMapControl());
map.addControl(new GScaleControl());
map.addControl(new GLargeMapControl());
map.enableScrollWheelZoom();

///////////////////////////////////// Voici la fonction qui doit charger le document php qui creer le XML////////////////////////////////////////////////////////////////////

var urlstr = "ajax_mysql.php"; //fichier php qui contient le xml
GDownloadUrl(urlstr, function(data) {
alert("1");
var xml = GXml.parse(data);
alert("2");
var markers = xml.documentElement.getElementsByTagName("marker");
alert("3");
for (var i = 0; i < 100; i++) {
alert("4");

alert("5");

//// A partir d'ici la fonction ne s'exécute plus.
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("long")));
alert("6");
var marker = createMarker(point);
alert("7");
map.addOverlay(marker);
alert("8");


}
});

}


else{
alert("Désolé, mais votre navigateur nest pas compatible avec Google Maps");
}
}


</script>';

Et voici le code du document PHP devant générer le XML.

<?php
include('config.php');


$sql = "select * FROM scene"; // La table scene contient les coordonnées
$res = mysql_query($sql) or die(mysql_error());
$dom = new DomDocument('1.0', 'iso-8859-1');
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
while ($result = mysql_fetch_array($res)){
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("lat", $result'Y(coord_scene)');

// Doit prendre la coordonnée Y du point.

$newnode->setAttribute("long", $result' X(coord_scene)');

// Doit prendre la coordonnée X du point.

}

$xmlfile = $dom->saveXML();
echo $xmlfile;

?>

Je vous remercie par avance si vous avez une idée.

1 réponse

vincebzh Messages postés 137 Date d'inscription   Statut Contributeur Dernière intervention   29
 
Salut. Au niveau du php, ce serais pas plutot $result['X(coord_scene)'] ?
0
apprentiDev Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour Vincebzh,

Tu as raison c'est la syntaxe que j'avais utilisé au début mais que j'étais pas sur de la syntaxe. Je te remercie au moins pour cette erreur c'est résolu.
0