php db 테이블 내용을 반복적으로 부르고 싶습니다!


    $sql = "select * from map";

    //쿼리 성공시 쿼리 리소스 가져옴
    $result = mysql_query($sql, $conn);

    while($row=mysql_fetch_array($result)){


    // 단일 row 결과값일 경우 while 대신 list 함수 이용
    // list( $id, $title, $content ) = mysql_fetch_array($result);
?>

<!DOCTYPE html> 지도 TEST html { height: 100% } body { height: 100%; margin: 0; padding: 0 } h1 { text-align : center} #map { width: 90%; height: 80%; border : solid blue ; margin-left:auto; margin-right:auto }

<script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=b36d946c62d06dc09ccb41b7fdd2b200"></script>
<script type="text/javascript">
    window.onload = function() {

        // 지도의 중심
        var position = new daum.maps.LatLng(38.3724912, 128.7065569);

        // 기본 지도 표시
        var map = new daum.maps.Map(document.getElementById('map'), {
            center: position,
            level: 12,
            mapTypeId: daum.maps.MapTypeId.ROADMAP
        });

        // 지도 콘트론 표시
        var zoomControl = new daum.maps.ZoomControl();
        map.addControl(zoomControl, daum.maps.ControlPosition.RIGHT);
        var mapTypeControl = new daum.maps.MapTypeControl();
        map.addControl(mapTypeControl, daum.maps.ControlPosition.TOPRIGHT);

        // 다중 마커와 인포윈도우 표시

        //위치 정보와 인포윈도우에 표시할 정도
        var locations =  [[<?php echo $row['Latitude']?>,<?php echo $row['Longitude']?>,'<?php echo $row['content']?>']];

        for(i = 0; i < locations.length; i++) {
            // 다중 마커
            var marker = new daum.maps.Marker({
                position: new daum.maps.LatLng(locations[i][0], locations[i][1])
            });
            marker.setMap(map);

            //인포 윈도우
            daum.maps.event.addListener(marker, 'click', (function(marker, i) {
                return function() {
                    var infowindow = new daum.maps.InfoWindow({
                        content: '<p style="margin:7px 22px 7px 12px;font:12px/1.5 sans-serif">' + locations[i][2] + '</p>',
                        removable : true
                    });
                  infowindow.open(map, marker);
                }
            })(marker, i));
        }

    };
</script>

<?php } ?>

var location = 이부분에 보시면 Latitude 가 위도이고 Longitude가 경도이고 Content는 마커 누르면 보이는 이름이거든요?

근데 이게 디비에 10개정도 들어있는데 지금은 1개만 나오는데 10개 다보이게 하고 싶습니다. 코드를 어떻게 수정해야 될까요?

db는 num 프라이머리키로 1~10 이런 식으로 들어가있고 위도, 경도, 내용 이렇게 밖에 없습니다.

지금 소스를 보면

        //위치 정보와 인포윈도우에 표시할 정도
                        var locations =  [[37.4440022,126.7086658,'한국인터넷센터']];
                        var locations =  [[37.4442646,126.7007446,'뉴코아아울렛']];

이렇게 들어가있거든요 ... 어떻게 변환을 시켜야 될까요 ㅠㅠㅠ

제가 시간이 없어서 남으면 좀 생각해보고 싶은데 너무 급한거라 조언을 드려봅니다 ㅠㅠ

  • 2016년 08월 18일에 작성됨
    웹/앱 개발자 초보입니다.

조회수 191


1 답변


좋아요
1
싫어요
채택취소하기

db 쿼리 값으로 가져오는 list는 mysql_fetch_array를 이용해서 모두 가져올 수 있어요.

위에 코드를 보면 locations 에 단일 값만 넣게 되어 있네요.

이 부분을 배열로 수정하면 될 것 같습니다. 즉, locations를 2차원 배열로 수정하시면 됩니다.

<?php
$i = 0;
while($row=mysql_fetch_array($result)){
    echo "locations[" .$i++ ."] = [" .$row['Latitude'] ."," .$row['Longitude'] ."," .$row['content'] ."];";
}


  • 2016년 08월 18일에 작성됨

  • Parse error: syntax error, unexpected '=', expecting ';' 수정부분에서 이러한 에러가 납니다    코딩초보자   2016.8.18 13:02     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close