최신글 테이블에서 그룹으로 뽑아오려면 어떻게 해야될까요?? 정보
최신글 테이블에서 그룹으로 뽑아오려면 어떻게 해야될까요??
본문
최신글을 그룹으로 뽑아오려고 합니다. ($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님께 감사드립니다. ^^
아래파일을 어떻게 수정해야 될까요? ^^;;
아래 파일은 테이블에서 일정기간 및 여러가지 형식으로 뽑아오는 것입니다.
사용될 때에는 아래처럼 하죠.
최신글을 불러올 때에는 아래와 같이 입력
<?=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에도 기록이 된다는 조건에서요
그룹에 속한 게시판에서만 최신글을 가져 온다는 것인가요?
g4_board_new하고 g4_group하고 조인해서 가져 와야겠는데요.
모든 글이 g4_board_new에도 기록이 된다는 조건에서요
설명이 너무 어려웠나요? ㅎㅎ
$bo_table 이렇게 뽑아오는 것을 $gr_id 로 뽑아오는 것 질문입니다. ^^;;
$bo_table 이렇게 뽑아오는 것을 $gr_id 로 뽑아오는 것 질문입니다. ^^;;
방법은 두 가지가 있는데
그룹 테이블에서 $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를 불러 보면 어떨까요?
그룹 테이블에서 $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를 불러 보면 어떨까요?