그누보드5 메인화면 최신글을 이렇게 읽어올순 없을까요?ㅠㅠ

그누보드5 메인화면 최신글을 이렇게 읽어올순 없을까요?ㅠㅠ

QA

그누보드5 메인화면 최신글을 이렇게 읽어올순 없을까요?ㅠㅠ

본문

안녕하세요 그누보드 초보입니다.

 

메인화면 최신글을

 

각 게시판에 있는 모든 게시물을 읽어서 따로 게시판 출력은 안하고 다음지도 api에 출력하고 싶은데요

 

기존엔

 

1794451444_1557387799.0289.png

 

이런식으로 각게시판에 따로 마커를 찍었는데 이걸 메인 최신글에 여러 게시판을 합치고 싶은데요 ㅠㅠ

 


<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
            ";

$spl이 하단에 하나 더 있어서 그런거 같기도 해요 ㅠㅠ
$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일동안 등록된 댓글 갯수 구하는건데 ㅠㅠ 이거때문에 에러나는거 같아요 ㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 14
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT