그누보드5 메인화면 최신글을 이렇게 읽어올순 없을까요?ㅠㅠ
관련링크
http://www.jjbang.info
77회 연결
본문
안녕하세요 그누보드 초보입니다.
메인화면 최신글을
각 게시판에 있는 모든 게시물을 읽어서 따로 게시판 출력은 안하고 다음지도 api에 출력하고 싶은데요
기존엔
이런식으로 각게시판에 따로 마커를 찍었는데 이걸 메인 최신글에 여러 게시판을 합치고 싶은데요 ㅠㅠ
<script>
var mapContainer = document.getElementById('map2'), // 지도의 중심좌표
mapOption = {
center: new daum.maps.LatLng(35.1579791033567,129.0582177555142), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
};
var map = new daum.maps.Map(mapContainer, mapOption); // 지도를 생성합니다
// 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다
var zoomControl = new daum.maps.ZoomControl();
map.addControl(zoomControl, daum.maps.ControlPosition.RIGHT);
<?
$sql="select * from {$write_table} order by wr_id asc";
$result=sql_query($sql);
$cnt=0;
for($i=0; $row=sql_fetch_array($result); $i++) {
if($row['wr_29'] && $row['wr_30']) {
$sql="select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK) and wr_parent='{$row['wr_id']}' and wr_is_comment=1";
$rows=sql_fetch($sql);
$com_count=(int)$rows['cnt'];
$thumb = get_list_thumbnail($board['bo_table'], $row['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height']);
if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
} else {
$img_content = '<span style="width:'.$board['bo_gallery_width'].'px;height:'.$board['bo_gallery_height'].'px">no image</span>';
}
?>
if("<?=$row['wr_4']?>" == "원룸"){
// 마커를 생성합니다
var imageSrc = 'http://www.jjbang.info/blue.png', // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "투룸"){
// 마커를 생성합니다
var imageSrc = 'http://www.jjbang.info/green.png', // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "쓰리룸"){
// 마커를 생성합니다
var imageSrc = 'http://www.jjbang.info/red.png', // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "복층"){
// 마커를 생성합니다
var imageSrc = 'http://www.jjbang.info/black.png', // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else {
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>) // 마커의 위치
});
};
<?
if($com_count == 0){
?>
marker.setOpacity(0.2)
<?
}
?>
// 마커에 표시할 인포윈도우를 생성합니다
var infowindow = new daum.maps.InfoWindow({
content: '<p><?echo $img_content?></p><p><div style="width:150px;text-align:center;padding:10px 0;"><?=$row['wr_subject']?></p></div><p> <?=$row['wr_10']?></p><p> <?=$row['wr_11']?></p><p> <?=$row['wr_12']?></p><p> <?=$row['wr_13']?></p><p> <?=$row['wr_14']?></p><p> 최근일주일 등록공실 <?=$com_count?>개</p><p> <div class="gall_info"><span class="sound_only">조회 </span> <strong><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $row['wr_hit'] ?></strong> <span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $row['wr_good'] ?></strong> <span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $row['wr_nogood'] ?></strong></div></p><br>', // 인포윈도우에 표시할 내용
/* content : '<div class="mapwrap">' +
' <div class="mapinfo">' +
' <div class="maptitle">' +
' <?=$row[wr_subject]?>' +
' <div class="mapclose" onclick="closeOverlay()" title="닫기"></div>' +
' </div>' +
' <div class="mapbody">' +
' <div class="mapimg">' +
' <?php
$v_img_count = count($row['file']);
if($v_img_count) {
echo "<div id=\"bo_v_img\" style=\"width:73px; height:70px;\">";
if ($row['file'][0]['view']) {
echo get_view_thumbnail($row['file'][0]['view']);
}
else {
echo "<img src=$board_skin_url/img/no_image.gif>";
}
echo "</div>";
}
?>' +
' </div>' +
' <div class="mapdesc">' +
' <div class="mapellipsis"><?=$row[wr_5]?></div>' +
' <div class="mapjibun mapellipsis"><i class="fa fa-phone-square" aria-hidden="true"></i> <?=$row[wr_6]?></div>' +
' <div><i class="fa fa-wifi" aria-hidden="true"></i> <a href="<?=$row[wr_7]?>" target="_blank" class="maplink"><?=$row[wr_7]?></a>' +
' </div>' +
' </div>' +
' </div>' +
'</div>'
*/
});
// 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다
// 이벤트 리스너로는 클로저를 만들어 등록합니다
// for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
daum.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow));
daum.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow));
//daum.maps.event.addListener(marker, 'click', br_redirect(positions[i].wr_id));
// 마커에 click 이벤트를 등록합니다
daum.maps.event.addListener(marker, 'click', function() {
window.open('./board.php?bo_table=<?=$GLOBALS['bo_table']?>&wr_id=<?=$row[wr_id]?>', "_blank");
});
map.setCenter(new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>));
<?
$cnt++;
}
}
?>
// 인포윈도우를 표시하는 클로저를 만드는 함수입니다
function makeOverListener(map, marker, infowindow) {
return function() {
infowindow.open(map, marker);
};
}
// 인포윈도우를 닫는 클로저를 만드는 함수입니다
function makeOutListener(infowindow) {
return function() {
infowindow.close();
};
}
</script>
여기서 $sql="select * from {$write_table} order by wr_id asc"; 이걸 모든 게시판에 있는걸 긁어오고 싶은데 검색해봐도 너무너무 어려워요 ㅠㅠ
여러 게시판에 있는걸 하나로 취합해야 한다는데 ㅠㅠ
제가 실력이 부족한지라...ㅠㅠ
도와주세요 ㅠㅠ
!-->답변 1
g5_write_a, g5_write_b, g5_write_c
를 3개 게시판이라면
다음과 같이 쿼리로 호출하셔서 통합하시면됩니다.
실제 위,경도는 wr_29, wr_30 필드에 있기 때문에 각 테이블에 wr_29, wr_30 값을 가져왔고
wr_4는 보니깐 라벨명이기에 가져왔습니다.
wr_is_comment는 게시물만(댓글 X) 검색하기 위해
wr_datetime는 게시글 작성 순서로 정열하기 위해
가져온것이고
다른 정보를 가져 오실려면
wr_4, wr_29, wr_30, wr_is_comment, wr_datetime 부분에 추가 하시면 되며
3개의 테이블 똑같이 추가해주셔야 합니다. 하나라도 틀리게 가져 올경우 엘리어스를 써야는데
초보시라고 하니깐 그냥 똑같이 쓰세요
$sql = "
select
*
from
(
select
wr_4, wr_29, wr_30, wr_is_comment, wr_datetime
from g5_write_a
union all
select
wr_4, wr_29, wr_30, wr_is_comment, wr_datetime
from g5_write_b
union all
select
wr_4, wr_29, wr_30, wr_is_comment, wr_datetime
from g5_write_c
) X
where
wr_is_comment = 0
order
by wr_datetime desc
";
답변을 작성하시기 전에 로그인 해주세요.