Pb API google map et bdd php/sql

Signaler
Messages postés
6
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
3 septembre 2008
-
Messages postés
6
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
3 septembre 2008
-
Bonjour à tous,

 
Je souhaite intégrer dans mon site un affichage de résultats d'un formulaire dans l'api google map. Voilà mon code :

[cpp]
<ol id= "code1" class="olcode"><li><?php</li><li>         mysql_connect("", "", "" );</li><li>          mysql_select_db("" );</li><li> </li><li>    //on recupere la latitude longitude nom de la structure      </li><li>          $reponse = mysql_query("SELECT Latitude,Longitude FROM T_Gps" )</li><li>    ?></li><li>
</li><li>
</li><li><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
</li><li>  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></li><li><html xmlns="http://www.w3.org/1999/xhtml"></li><li>  <head></li><li>    <meta http-equiv="content-type" content="text/html; charset=utf-8"/></li><li>    <title>carte d'essai</title></li><li>    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key="</li><li>      type="text/javascript"></script></li><li>    <script type="text/javascript"></li><li>
</li><li>    //<![CDATA[
</li><li>     function load() {</li><li>      if (GBrowserIsCompatible()) {</li><li>       </li><li>          function createMarker(point, number) {</li><li>                  var marker new GMarker(point,icon);</li><li>                  GEvent.addListener(marker, "click", function() {</li><li>                  marker.openInfoWindowTabsHtml(infoTabs);           </li><li>                  });</li><li>                   return marker;</li><li>            }</li><li>            var infoTabs [</li><li>             new GInfoWindowTab("  info1", "  " ),</li><li>              new GInfoWindowTab(" info2", "  " )</li><li>            ];</li><li>
</li><li>     //création d'une carte nommé "map"
</li><li>            var map new GMap2(document.getElementById("map" ));</li><li>                        GEvent.addListener(map, "moveend", function() {</li><li>     </li><li>            var center map.getCenter();</li><li>                });</li><li>     </li><li>            map.addControl(new GSmallMapControl());</li><li>       </li><li>            map.addControl(new GMapTypeControl());</li><li>     </li><li>         </li><li>            map.setCenter(new GLatLng(45.44 , 4.395), 8);</li><li>               </li><li>         </li><li>            var icon = new GIcon();</li><li>     </li><li> 
          icon.image =
"http://images.google.fr/images?q=tbn:gS51abIJ6eysoM:http://rgfrance0.tripod.com/sitebuildercontent/sitebuilderpictures/flag.jpg";</li><li>     </li><li>            icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";</li><li>   </li><li>            icon.iconSize = new GSize(23, 23);</li><li>            icon.shadowSize = new GSize(22, 20);</li><li>            icon.iconAnchor = new GPoint(6, 20);</li><li>            icon.infoWindowAnchor = new GPoint(5, 1);           </li><li>             </li><li>           </li><li>        <?php while ($donnees = mysql_fetch_array($reponse)){?></li><li>            var point = new GLatLng('<?php echo $donnees['Latitude']; ?>','<?php echo $donnees['Longitude'] ; ?>')</li><li>             map.addOverlay(createMarker(point ,1));</li><li>             marker.openInfoWindowTabsHtml(infoTabs);</li><li>         </li><li>      }</li><li>    }</li><li> </li><li></script></li><li><?php</li><li>mysql_close()    ;</li><li>       }</li><li>    ?> </li><li>  </head></li><li>  </li><li>   

</li><li>  </li><li></html></li></ol>/cpp

Il fonctionne correctement avec un seul enregistrement dans la table
mais pas avec plusieurs. Il affiche seulement la première donnée de la
table (marqueur sur la carte) et n'arrive pas à créer et afficher
d'autres marqueurs (correspondants aux autres données).

 
message d'erreur :

 
"var point = new GLatLng('43.672031','1.448878')
map.addOverlay(createMarker(point ,1));
marker.openInfoWindowTabsHtml(infoTabs); } } "

 
Au premier passage de la boucle, les instructions sont
exécutées correctement, par contre dès le seconde passage le script JS
de la boucle est affiché à l'écran et non interprété/

 
D'où peux venir le soucis ?

 
Merci d'avance pour votre aide. 

5 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
c'est typique d'une quote mal fermée
Messages postés
6
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
3 septembre 2008

J'ai modifié ma boucle While :

<?php while ($donnees = mysql_fetch_array($reponse))
{
?>
var point = new GLatLng(<?php echo $donnees['latitude'];?>,<?php echo $donnees['longitude'];?>);
map.addOverlay(createMarker(point ,1));
marker.openInfoWindowTabsHtml(infoTabs);
    
<?php
}
?>

Mais la boucle ne s'exécute toujours qu'une seule fois...
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
T'es sur que tu as bien plusieurs résultats ?
(affiche $reponse à coups de print_r() )

si tu en as plusieurs, le résultat affiché a l'écran, c'est le premier de ta base ou le dernier ?
Si c'est le dernier, c'est une erreur dans le javascript, sinon...
Messages postés
6
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
3 septembre 2008

Alors quand je rajoute le print_r comme ceci :

<?php while ($donnees = mysql_fetch_array($reponse))
{      
?>
<?php print_r($donnees['latitude']); ?>
 var point = new GLatLng('<?php echo $donnees['latitude'];?>','<?php echo $donnees['longitude'];?>');
map.addOverlay(createMarker(point ,1));
marker.openInfoWindowTabsHtml(infoTabs);

<?php
}
?>

Plus rien ne s'affiche sur la map, par contre des que j'enleve le print_r, le premier enregistrement de la BDD s'affiche correctement sur la map.
Messages postés
6
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
3 septembre 2008

ça marche !!
Mon code modifié :

<?php while ($donnees = mysql_fetch_array($reponse)){
        
        ?>
    
            var point = new GLatLng('<?php echo $donnees['latitude'];?>','<?php echo $donnees['longitude'];?>');
            var infoTabs = [new GInfoWindowTab("Description", "maison de 200m² en bord de plage")];
var marker = new createMarker(point,icon,infoTabs);
map.addOverlay(marker);
     <?php } ?>