php db 테이블 내용을 반복적으로 부르고 싶습니다!
조회수 1941회
$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,'뉴코아아울렛']];
이렇게 들어가있거든요 ... 어떻게 변환을 시켜야 될까요 ㅠㅠㅠ
제가 시간이 없어서 남으면 좀 생각해보고 싶은데 너무 급한거라 조언을 드려봅니다 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
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'] ."];"; }
-
(•́ ✖ •̀)
알 수 없는 사용자
- Parse error: syntax error, unexpected '=', expecting ';' 수정부분에서 이러한 에러가 납니다 알 수 없는 사용자 2016.8.18 13:02
-
댓글 입력