서브페이지 최신글 적용문제 도움 부탁드립니다~

서브페이지 최신글 적용문제 도움 부탁드립니다~

QA

서브페이지 최신글 적용문제 도움 부탁드립니다~

본문

안녕하세요~

서브페이지(?)에 최신글 적용에 문제가 있어 도움 좀 부탁드리려 합니다.

스킨원본은 원래 G4용 이었는데 G5용으로 수정하였습니다.
스킨원본 주소 : http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=76978&sca=&sfl=wr_subject||wr_content&stx=%EC%9D%B8%EA%B8%B0&page=4

메인페이지에는 잘 적용이 되는 스킨인데 (메인페이지에서는 전체게시판 최신글 추출이고, 서브에서는 특정그룹 최신글 추출로 사용하려 합니다.)

head2.php를 만들어서 서브페이지에서는 아래 오류가 나오는데 무슨 뜻인지 왜 나오는지 모르겠네요...ㅠㅠ

select bo_table from g5_board where gr_id='movie' and bo_use_search='1' order by bo_order_search
1054 : Unknown column 'bo_order_search' in 'order clause'
error file : /bbs/board.php

어떻게 해결을 해야될지 고수님들의 도움 말씀이 필요합니다..부탁드립니다.

 

weekly.lib.php 내용입니다. (파일은 root/extend/ 폴더에 있습니다.) 


<?php 
if (!defined('_GNUBOARD_')) exit; 
/* 
izen.group.lib.php 
제작일 : 2006-12-08 
지정 기간제 히트순 최근 게시물 수정본 
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328 
그룹 최신글 관련하여 통합하도록 하였다. 
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다. 
izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?); 
예) echo izen_group('best10', '06', wr_hit, 10, 28, 30); 
*/ 
// 인기글 
function izen_usort1($a, $b) 
{ 
return $b['wr_hit'] - $a['wr_hit']; 
} 
// 헤드라인 
function izen_usort2($a, $b) 
{ 
return $b['wr_good'] - $a['wr_good']; 
} 
// 최신글 추출 
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len, $listdate)
{ 
global $g5; 
$nowYmd = date(Ymd); // 시작시간을 구합니다. 
$time = time(); 
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time)); 
if (!$skin_dir) $skin_dir = 'basic';
    if(G5_IS_MOBILE) {
        $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
    } else {
        $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;
    }
$list = array(); 
$sql= " select bo_table from {$g5['board_table']} ";
    if( !empty($gr_id)) $sql .= "where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search "; //그룹별 랭킹 추가 - 2015.02.05
    
$ress = sql_query($sql); 
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++) 
{ 
$tmp_write_table = $g5['write_prefix'] . $board['bo_table']; // 게시판 테이블 전체이름 
//$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and  date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows "; 
// 정렬 필드에 의해서 전체적으로 정렬, 관리한다. 
if ($izen_sort == 'wr_hit') 
{ 
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows "; 
} 
elseif ($izen_sort == 'wr_scrap') 
{ 
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows "; 
} 
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인 
{ 
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows "; 
} 
elseif ($izen_sort == 'wr_good') # 
{ 
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0'  order by $izen_sort desc limit 0, $rows "; 
} 
elseif ($izen_sort == 'wr_id') 
{ 
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows "; 
}
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql); 
//for (; $row=sql_fetch_array($result); $i++) // *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다. 
for ($i==0; $row=sql_fetch_array($result); $i++) 
{ 
$list[$i] = get_list($row, $board, $latest_skin_url, $subject_len, $listdate); 
} 
} 
if ($izen_sort == 'wr_hit') 
{ 
usort($list, 'izen_usort1'); 
} 
elseif ($izen_sort == 'wr_good') 
{ 
usort($list, 'izen_usort2'); 
} 
$list= array_slice($list, 0, $rows); 
ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents(); 
ob_end_clean(); 
return $content; } ?> 
 

 

 

head2.php 내용입니다. (파일은 root에 있습니다.) 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_PATH.'/head.sub.php');
include_once(G5_LIB_PATH.'/latest.lib.php');
include_once(G5_LIB_PATH.'/outlogin.lib.php');
include_once(G5_LIB_PATH.'/poll.lib.php');
include_once(G5_LIB_PATH.'/visit.lib.php');
include_once(G5_LIB_PATH.'/connect.lib.php');
include_once(G5_LIB_PATH.'/popular.lib.php');
// 상단 파일 경로 지정 : 이 코드는 가능한 삭제하지 마십시오.
if ($config['cf_include_head']) {
    if (!@include_once($config['cf_include_head'])) {
        die('기본환경 설정에서 상단 파일 경로가 잘못 설정되어 있습니다.');
    }
    return; // 이 코드의 아래는 실행을 하지 않습니다.
}
if (G5_IS_MOBILE) {
    include_once(G5_MOBILE_PATH.'/head.php');
    return;
}
?>
<script type="text/javascript">
            $(function() {
                $("#toTop").scrollToTop(200); // 숫자가 작을수록 빨라짐
            });
</script>
<a href="#top" id="toTop"></a>
<!-- 상단 시작 { -->
<div id="hd">
    <h1 id="hd_h1"><?php echo $g5['title'] ?></h1>
    <div id="skip_to_container"><a href="#container">본문 바로가기</a></div>
    <?php
    if(defined('_INDEX_')) { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
    ?>
    <div id="hd_wrapper">
        <div id="logo">
            <a href="<?php echo G5_URL ?>"><!--img src="<?php echo G5_IMG_URL ?>/logo.jpg" alt="<?php echo $config['cf_title']; ?>"--></a>
        </div>
        <fieldset id="hd_sch">
            <legend>사이트 내 전체검색</legend>
            <form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
            <input type="hidden" name="sfl" value="wr_subject||wr_content">
            <input type="hidden" name="sop" value="and">
            <label for="sch_stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
            <input type="text" name="stx" id="sch_stx" maxlength="20">
            <input type="submit" id="sch_submit" value="검색">
            </form>
            <script>
            function fsearchbox_submit(f)
            {
                if (f.stx.value.length < 2) {
                    alert("검색어는 두글자 이상 입력하십시오.");
                    f.stx.select();
                    f.stx.focus();
                    return false;
                }
                // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
                var cnt = 0;
                for (var i=0; i<f.stx.value.length; i++) {
                    if (f.stx.value.charAt(i) == ' ')
                        cnt++;
                }
                if (cnt > 1) {
                    alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
                    f.stx.select();
                    f.stx.focus();
                    return false;
                }
                return true;
            }
            </script>
        </fieldset>
        <div id="text_size">
            <!-- font_resize('엘리먼트id', '제거할 class', '추가할 class'); -->
            <button id="size_down" onclick="font_resize('container', 'ts_up ts_up2', '');"><img src="<?php echo G5_URL; ?>/img/ts01.gif" alt="기본"></button>
            <button id="size_def" onclick="font_resize('container', 'ts_up ts_up2', 'ts_up');"><img src="<?php echo G5_URL; ?>/img/ts02.gif" alt="크게"></button>
            <button id="size_up" onclick="font_resize('container', 'ts_up ts_up2', 'ts_up2');"><img src="<?php echo G5_URL; ?>/img/ts03.gif" alt="더크게"></button>
        </div>
        <ul id="tnb">
            <?php if ($is_member) {  ?>
            <?php if ($is_admin) {  ?>
            <li><a href="<?php echo G5_ADMIN_URL ?>"><b>관리자</b></a></li>
            <?php }  ?>
            <li><a href="<?php echo G5_BBS_URL ?>/member_confirm.php?url=<?php echo G5_BBS_URL ?>/register_form.php">정보수정</a></li>
            <li><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
            <?php } else {  ?>
            <li><a href="<?php echo G5_BBS_URL ?>/register.php">회원가입</a></li>
            <li><a href="<?php echo G5_BBS_URL ?>/login.php"><b>로그인</b></a></li>
            <?php }  ?>
            <li><a href="<?php echo G5_BBS_URL ?>/faq.php">FAQ</a></li>
            <li><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1문의</a></li>
            <li><a href="<?php echo G5_BBS_URL ?>/current_connect.php">접속자 <?php echo connect(); // 현재 접속자수  ?></a></li>
            <li><a href="<?php echo G5_BBS_URL ?>/new.php">새글</a></li>
        </ul>
    </div>
    <hr>
    
    <nav id="gnb">
        <h2>메인메뉴</h2>
        <ul id="gnb_1dul">
            <?php
            $sql = " select *
                        from {$g5['menu_table']}
                        where me_use = '1'
                          and length(me_code) = '2'
                        order by me_order, me_id ";
            $result = sql_query($sql, false);
            $gnb_zindex = 999; // gnb_1dli z-index 값 설정용
            for ($i=0; $row=sql_fetch_array($result); $i++) {
            ?>
            <li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex--; ?>">
                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
                <?php
                $sql2 = " select *
                            from {$g5['menu_table']}
                            where me_use = '1'
                              and length(me_code) = '4'
                              and substring(me_code, 1, 2) = '{$row['me_code']}'
                            order by me_order, me_id ";
                $result2 = sql_query($sql2);
                for ($k=0; $row2=sql_fetch_array($result2); $k++) {
                    if($k == 0)
                        echo '<ul class="gnb_2dul">'.PHP_EOL;
                ?>
                    <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
                <?php
                }
                if($k > 0)
                    echo '</ul>'.PHP_EOL;
                ?>
            </li>
            <?php
            }
            if ($i == 0) {  ?>
                <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
            <?php } ?>
        </ul>
    </nav>
</div>
<!-- } 상단 끝 -->
<hr />
<!-- 콘텐츠 시작 { -->
<!-- wrapper 시작 { -->
<div id="wrapper2">
    <div id="aside2">
        <div class="block"><?php echo outlogin('ge.local.outlogin'); // 외부 로그인  ?></div>
        <div class="block"><?php echo izen_group('g.weekly', 'movie', wr_hit, 10, 24, 30); ?> </div>
    </div>
    
    <!-- container 시작 { -->
    <div id="container2">
        <?php if ((!$bo_table || $w == 's' ) && !defined("_INDEX_")) { ?><div id="container_title"><?php echo $g5['title'] ?></div><?php } ?> 
 

이 질문에 댓글 쓰기 :

답변 1

단순히 order clause​ 라는 컬럼이 bo_order_search라는 테이블에 없다는거에요.

 

적어주신 소스에 이런 컬럼이 들어가는 쿼리문이 안나와있는데 order clause라는게 들어간곳을 수정해보세요.

 

드래곤된다님
답변 감사드립니다..^^

그런데 제가 개발쪽은 문외한이라 무슨말씀을 하시는지 이해가 안가네요..하하하 ㅠㅠ
대충 눈짐작으로는 weekly.lib.php 의 40번째 줄


  if( !empty($gr_id)) $sql .= "where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search "; //그룹별 랭킹 추가 - 2015.02.05

때문인거 같은데 혹시 수정할 방법을 구할 수 있을까요?

아 제가 설명을 잘못했네요 bo_order_search라는 컬럼이 없다는거에요.

그러니 bo_order_search말고 다른걸로 정렬하셔야해요.

그룹별로한다면 gr_id로 한다거나 제목별로한다면 bo_subject로 한다거나 등등으로 바꾸시면되요~

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

회원로그인

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