Pb API google map et bdd php/sql

Anthosrc Messages postés 6 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 3 septembre 2008 - 4 juil. 2008 à 11:20
Anthosrc Messages postés 6 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 3 septembre 2008 - 4 juil. 2008 à 12:45
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

Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
4 juil. 2008 à 11:29
c'est typique d'une quote mal fermée
0
Anthosrc Messages postés 6 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 3 septembre 2008
4 juil. 2008 à 11:33
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...
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
4 juil. 2008 à 11:56
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...
0
Anthosrc Messages postés 6 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 3 septembre 2008
4 juil. 2008 à 12:05
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Anthosrc Messages postés 6 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 3 septembre 2008
4 juil. 2008 à 12:45
ç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 } ?>
0
Rejoignez-nous