최신글 테이블에서 그룹으로 뽑아오려면 어떻게 해야될까요?? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

최신글 테이블에서 그룹으로 뽑아오려면 어떻게 해야될까요?? 정보

최신글 테이블에서 그룹으로 뽑아오려면 어떻게 해야될까요??

본문

최신글을 그룹으로 뽑아오려고 합니다. ($bo_table > $gr_id)

아래파일을 어떻게 수정해야 될까요? ^^;;

아래 파일은 테이블에서 일정기간 및 여러가지 형식으로 뽑아오는 것입니다.

사용될 때에는 아래처럼 하죠.

최신글을 불러올 때에는 아래와 같이 입력

<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>

형식 - 코멘트순(C), 조회순(H), 랜덤(R), 추천(G), 비추천(N), 기본 최신글(공백이거나 B)
기간 - 최근 몇일간의 입력된 글을 뽑아옴. 100이라 입력하면 최근 100일간의 글을 뽑아옴

ex)
<?=latest("basic", "morssola", 5, 40, "R", "100");?>

관련 팁
http://www.sir.co.kr/bbs/tb.php/g4_qa/13112
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/677





latest.lib.php 파일
<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len="", $brch="", $time="", $options="")
{
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";

    $list = array();

    $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

if ($brch == "H")          // 넘어온 값이 "H" 즉 hit 일때
    $brch = "wr_hit";      // hit 순으로 쿼리
elseif ($brch == "C")      // 넘어온 값이 "C" 즉 comment 일때
    $brch ="wr_comment"; // comment 순으로 쿼리
elseif ($brch == "R")        //넘온값이 "R" 즉 random 일때
    $brch = "rand()";            // 랜덤 쿼리
elseif ($brch == "G")        //넘온값이 "G" 즉 추천 일때
    $brch = "wr_good";            // 추천 쿼리
elseif ($brch == "N")        //넘온값이 "N" 즉 비추천 일때
    $brch = "wr_nogood";            // 비추천 쿼리
elseif ($brch == "B")        //넘온값이 "B" 즉 기본 최신글 일때
    $brch = "wr_id";            // 기본 최신글 쿼리
else                                  // 넘어온값이 없거나 그이외 일때
    $brch = "wr_id";        // 걍 최근순으로 쿼리

    $sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_datetime between date_sub(now(), interval $time day) and now() order by $brch desc limit 0, $rows ";
    //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++)
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>





마지막으로 sjsjin님, 댕2님께 감사드립니다. ^^
  • 복사

댓글 전체

최신글을 그룹으로 뽑아 온다는 것이 무슨 뜻인지......
그룹에 속한 게시판에서만 최신글을 가져 온다는 것인가요?

g4_board_new하고 g4_group하고 조인해서 가져 와야겠는데요.
모든 글이 g4_board_new에도 기록이 된다는 조건에서요
방법은 두 가지가 있는데
그룹 테이블에서 $gr_id인 테이블 이름을 가져 와서 각 테이블마다 $rows만큼 최신글을 가져 와서
전체를 날짜로 정렬한 다음 다시 $rows만큼 골라 내는 거죠.
다음 링크를 참조 하시고
http://www.sir.co.kr/bbs/tb.php/g4_qa/15048

위 링크에서 언급하다만 g4_board_new를 이용하는 것은
bbs/new.php를 참고하면 될 듯한데.

bbs/new.php에서 앞 부분에 이 부분을

$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
              where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";

=============

$sql_common = " from $g4[board_new_table] a, $g4[board_table] b
              where a.bo_table = b.bo_table and b.gr_id = $gr_id and b.bo_use_search = '1' ";


정도를 바꾸고

new.php를 불러 보면 어떨까요?
© SIRSOFT
현재 페이지 제일 처음으로