고수님 도와주세요 아래 그룹 최신글에서 30일최신글만 출력하고 싶습니다.

고수님 도와주세요 아래 그룹 최신글에서 30일최신글만 출력하고 싶습니다.

QA

고수님 도와주세요 아래 그룹 최신글에서 30일최신글만 출력하고 싶습니다.

본문

고수님 도와주세요 아래 그룹 최신글에서 30일최신글만 출력하고 싶습니다.

애래 그룹최신글 wr_8 인것만 출력하는 최신글입니다.  여기에 기간넣을려고 합니다

 

고수님 도와주세요  초보라서 상세한 설명 부탁합니다.

 

 

 

// 최신글 그룹 추출 - 선택한글만 출력(wr_8인게시글만 출력) 
function latest_group3($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="") 

global $config; 
global $g5; 

$list = array(); 
$limitrows = $rows; 

$sqlgroup = " select bo_table, bo_subject from $g5[board_table] where gr_id = '$gr_id' and  bo_use_search=1 order by bo_order"; 
$rsgroup = sql_query($sqlgroup); 

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

for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) { 
$bo_table = $rowgroup[bo_table]; 

// 테이블 이름구함 
$sql = " select * from {$g5[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);

$tmp_write_table = $g5[write_prefix] . $bo_table; // 게시판 테이블 실제이름

// 옵션에 따라 정렬 
//$sql = "select * from $tmp_write_table where wr_is_comment = 0 "; //기본정력(등록순으로 정렬)
$sql = "select * from $tmp_write_table where (wr_is_comment = 0 and wr_8) "; //wr_ltop이가 1인게시글만 출력

$sql .= (!$category) ? "" : " and ca_name = '$category' "; 
$sql .= (!$orderby) ? "  order by wr_id desc " : "  order by $orderby desc, wr_id desc "; 
$sql .= " limit $limitrows"; 

$result = sql_query($sql); 

for ($i=0; $row = sql_fetch_array($result); $i++, $k++) { 

if(!$orderby) $op_list[$k] = $row[wr_datetime]; 
else  { 
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]); 
$op_list[$k] .= $row[wr_datetime]; 

$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len); 

$list[$k][bo_table] = $board[bo_table]; 
$list[$k][bo_subject] = $board[bo_subject]; 

$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len); 


if($k>0) array_multisort($op_list, SORT_DESC, $list); 
if($k>$rows) array_splice($list, $rows); 

ob_start(); 
include "$latest_skin_path/latest.skin.php"; 
$content = ob_get_contents(); 
ob_end_clean(); 

return $content; 
}
/// 함수 정의 끝 

이 질문에 댓글 쓰기 :

답변 1


$sql = "select * from $tmp_write_table where (wr_is_comment = 0 and wr_8) ";

코드를 다음과 같이 변경해 주면 되지 않을까 합니다.


$sql = "select * from $tmp_write_table where (wr_is_comment = 0 and wr_8 and wr_datetime > (CURDATE() - INTERVAL 30 DAY)) ";

 

wr_datetime > (CURDATE() - INTERVAL 30 DAY) 에서,

wr_datetime 은 게시글 작성일시 정보가 담겨있고,

CURDATE() - INTERVAL 30 DAY 는 현재시각에서 30일 이전의 시각을 의미합니다.

지금보니.. 기존의 조건 중 wr_is_comment = 0 and wr_8 구문이 잘못된 것으로 보입니다.
wr_8 = 1
wr_8 = 'Y'
등으로 조건이 들어가야 됩니다.

일단
$sql = "select * from $tmp_write_table where (wr_is_comment = 0 and wr_datetime > (CURDATE() - INTERVAL 30 DAY)) ";
코드로 wr_8 조건을 뺀 뒤, 테스트해본 다음
wr_8 조건을 넣어 살펴보면 어떨까 합니다.

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

회원로그인

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