地域検索から該当企業の所在地を地図で表示させてるページがあるのですが、一部ページで同じ企業が2件表示されてしまいます。
例)検索結果xx件
・A社
・B社
・C社
・A社
DBから住所と経度、緯度を取得して、GoogleMapをJSで表示させているのですが、原因がわからず。
アドバイスいただけば幸いです。
※DBには該当企業情報は1件しかないことは確認済み
※2件取得されずに期待通りに表示されるページもあります。
<script type="text/javascript" charset="utf-8"> //<![CDATA[ var sidebar_html = ""; var markers = []; var marker_html = []; var counter = 0; var icon = Array(); function initialize() { var i = 0; <?php while ( $facility = mysql_fetch_array( $result ) ) { ?> if(i == 0){ //GoogleMapの地図を表示する位置(地図の中心点の緯度経度) if(<?=$sm?>==3){ var init_pos = new google.maps.LatLng(<?= $facility['lat'] ?>,<?= $facility['lng'] ?>); var init_zoom = 15; }else{ var init_pos = new google.maps.LatLng(35.653735,139.637003); var init_zoom = 13; } //地図のオプションを設定 var myOptions = { zoom: init_zoom, //拡大の度合い設定 center: init_pos, //地図の中心の緯度経度設定 navigationControl: true, //拡大縮小のナビを表示 mapTypeControl: true, // 地図の種別切り替えを表示 scaleControl: true //縮尺の表示 }; //GoogleMapの地図 var gmap = new google.maps.Map(document.getElementById("map_canvas"),myOptions); } //mapにピンを設定 var point = new google.maps.LatLng(<?= $facility['lat'] ?>,<?= $facility['lng'] ?>); var gmarker = new google.maps.Marker({ position: point, map: icon[i], }); //所在地の一覧を表示する var title_name = "<?= $facility['name'] ?></a> <?= $facility['address'] ?>"; var maphtml = "<div class=\"mapinfo\"><a href=\"shika.php?shika_id=<?= $facility['shika_id'] ?><?= $back ?>\"><?= $facility['name'] ?></a><br /><span style=\"font-size:13px;\">休診日:<?= $facility['holiday'] ?><br />所在地:<?= $facility['address'] ?><br />TEL:<?= $facility['tel'] ?></span><br /><a href=\"shika.php?shika_id=<?= $facility['shika_id'] ?><?= $back ?>\">詳しくはこちら</a></div>"; markers[counter] = gmarker; marker_html[counter] = maphtml; if(i < <?=$num_rows?>){ sidebar_html += '<div class=\"mapside\"><a href=\"javascript:click_sidebar(' + counter + ')\">' + title_name + '</div>'; } counter++; //mapの表示 gmarker.setMap(gmap); i++; <?php } if ( $sm == '3' ) { $sql = "select * from `shika_data` where `chiku_id` = '" . mysql_real_escape_string( $_GET['chiku'] ) . "' and `shika_id` >= 1 order by `cyoume` asc"; $result = mysql_query( $sql ); $num_rows = mysql_num_rows( $result ); while ( $facility = mysql_fetch_array( $result ) ) { ?> //mapにピンを設定 var point = new google.maps.LatLng(<?= $facility['lat'] ?>,<?= $facility['lng'] ?>); var gmarker = new google.maps.Marker({ position: point, map: icon[i], }); //所在地の一覧を表示する var title_name = "<?= $facility['name'] ?></a> <?= $facility['address'] ?>"; var maphtml = "<div class=\"mapinfo\"><a href=\"shika.php?shika_id=<?= $facility['shika_id'] ?><?= $back ?>\"><?= $facility['name'] ?></a><br /><span style=\"font-size:13px;\">休診日:<?= $facility['holiday'] ?><br />所在地:<?= $facility['address'] ?><br />TEL:<?= $facility['tel'] ?></span><br /><a href=\"shika.php?shika_id=<?= $facility['shika_id'] ?><?= $back ?>\">詳しくはこちら</a></div>"; markers[counter] = gmarker; marker_html[counter] = maphtml; if(i < <?=$num_rows?>){ sidebar_html += '<div class=\"mapside\"><a href=\"javascript:click_sidebar(' + counter + ')\">' + title_name + '</div>'; } counter++; //mapの表示 gmarker.setMap(gmap); i++; <?php } } ?> document.getElementById("sidebar_map").innerHTML = sidebar_html; /* alert("お使いのブラウザ設定ではGoogle Mapsを表示できません。<br />Javascriptの設定をお確かめの上、再度ページを表示してください。"); */ } function click_sidebar(idx) { var infoWindow = new google.maps.InfoWindow({ content: marker_html[idx] }); infoWindow.open(marker_html[idx], markers[idx]); } //]]> </script>