그누보드5 메인화면 최신글을 이렇게 읽어올순 없을까요?ㅠㅠ 채택완료
안녕하세요 그누보드 초보입니다.
메인화면 최신글을
각 게시판에 있는 모든 게시물을 읽어서 따로 게시판 출력은 안하고 다음지도 api에 출력하고 싶은데요
기존엔

이런식으로 각게시판에 따로 마커를 찍었는데 이걸 메인 최신글에 여러 게시판을 합치고 싶은데요 ㅠㅠ
</p>
<p><script>
var mapContainer = document.getElementById('map2'), // 지도의 중심좌표
mapOption = {
center: new daum.maps.LatLng(35.1579791033567,129.0582177555142), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
}; </p>
<p>var map = new daum.maps.Map(mapContainer, mapOption); // 지도를 생성합니다</p>
<p>// 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다
var zoomControl = new daum.maps.ZoomControl();
map.addControl(zoomControl, daum.maps.ControlPosition.RIGHT);</p>
<p>
<?
$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 = '<a href="http://www.jjbang.info/blue.png'," target="_blank" rel="noopener noreferrer">http://www.jjbang.info/blue.png',</a> // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다</p>
<p> // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다</p>
<p> var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "투룸"){
// 마커를 생성합니다
var imageSrc = '<a href="http://www.jjbang.info/green.png'," target="_blank" rel="noopener noreferrer">http://www.jjbang.info/green.png',</a> // 마커이미지의 주소입니다
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']?>); // 마커가 표시될 위치입니다</p>
<p> var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "쓰리룸"){
// 마커를 생성합니다
var imageSrc = '<a href="http://www.jjbang.info/red.png'," target="_blank" rel="noopener noreferrer">http://www.jjbang.info/red.png',</a> // 마커이미지의 주소입니다
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']?>); // 마커가 표시될 위치입니다</p>
<p> var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: markerPosition,
image: markerImage
});
} else if("<?=$row['wr_4']?>" == "복층"){
// 마커를 생성합니다
var imageSrc = '<a href="http://www.jjbang.info/black.png'," target="_blank" rel="noopener noreferrer">http://www.jjbang.info/black.png',</a> // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40); // 마커이미지의 크기입니다</p>
<p>
// 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize),
markerPosition = new daum.maps.LatLng(<?=$row['wr_29']?>, <?=$row['wr_30']?>); // 마커가 표시될 위치입니다</p>
<p> 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>
', // 인포윈도우에 표시할 내용
/* 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>'
*/
});</p>
<p> // 마커에 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() {</p>
<p> 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++;
}
}</p>
<p>?></p>
<p>// 인포윈도우를 표시하는 클로저를 만드는 함수입니다
function makeOverListener(map, marker, infowindow) {
return function() {
infowindow.open(map, marker);
};
}</p>
<p>// 인포윈도우를 닫는 클로저를 만드는 함수입니다
function makeOutListener(infowindow) {
return function() {
infowindow.close();
};
}
</script></p>
<p>
여기서 $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개의 테이블 똑같이 추가해주셔야 합니다. 하나라도 틀리게 가져 올경우 엘리어스를 써야는데
초보시라고 하니깐 그냥 똑같이 쓰세요
</p>
<p> $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
";</p>
<p>
답변에 대한 댓글 2개
$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";
이게 바로밑에 또 나오거든요 ㅠㅠ
7일동안 등록된 댓글 갯수 구하는건데 ㅠㅠ 이거때문에 에러나는거 같아요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
말씀주신데로 해보았는데 게시글을 긁어오질 못하고 있어요 ㅠㅠ
도움주셔서 감사합니다 ㅠㅠ