0

我有一个 sql 查询,我将 mysql_fetch_array 的结果传递到一个 while 循环中,我正在打印一个表。我的想法是,每行中包含相同的信息,我正在地图上构建标记。在我构建地图时,问题是地图始终以表格的最后一行为中心(C 标记)。而不是这个,我希望地图以标记 A 为中心(表格的第一行)。我正在搜索要反转数组但不起作用。

  <?php
   while($info4 = mysql_fetch_array($result4))
   {    

   ?>   


      // A function to create the marker and set up the event window
      function createMarker(point, name, html, flag) 
      {
        //set the icon of the marker        
        var letteredIcon = new GIcon(baseIcon);
        letteredIcon.image = "markers/"+flag+".png";

         // Set up our GMarkerOptions object
        markerOptions = { icon:letteredIcon };
        var marker = new GMarker(point, markerOptions);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers.push(marker);
        // add a line to the side_bar html
        side_bar_html += '<td><a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><\/td>';
         return marker;
      }


      // add the points   
      map.setCenter(new GLatLng(<?php print $info4['placeY'];?>,<?php print $info4['placeX'];?>), 14);    
      var point = new GLatLng(<?php print $info4['placeY'];?>,<?php print $info4['placeX'];?>);
      var marker = createMarker(point,"<?php print utf8_decode($info4['placeName']);?>","<?php print utf8_decode($info4['placeName'])."<br>".utf8_decode($info4['placeAddress'])."<br>".utf8_decode($info4['placeDistrict']);?>","<?=$flag;?>")
      map.addOverlay(marker);

    <?php  $flag=$flag+1;
    } ?> 

一个例子: 表:

观光剧场

B 观潮现象

C 观光红楼

在这个例子中,地图以 C 标记而不是我想看到的 A 标记为中心。

4

1 回答 1

0

因此,正确的代码如下所示,而不是使用 while 循环。

    //make an array
    $rows = array();
while ($row=mysql_fetch_array($result4)){
//push the rows to the empty array
    array_push($rows, $row);
}
// reverse the order of the rows
$reversedarray=array_reverse($rows);
    //use the info of each row as the variable $info4 
foreach ($reversedarray as $info4) {
    //the code
于 2013-03-09T23:59:08.857 回答