테스트 사이트 - 개발 중인 베타 버전입니다

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

ㅐ늑대ㅐ 7년 전 조회 2,587

고수님 도와주세요 아래 그룹 최신글에서 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개

채택된 답변
+20 포인트
7년 전

</p>

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

<p>

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

</p>

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

<p>

 

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

ㅐ늑대ㅐ
7년 전
게시물이 없는걸로 출력됩니다.
마르스컴퍼니
7년 전
지금보니.. 기존의 조건 중 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 조건을 넣어 살펴보면 어떨까 합니다.
ㅐ늑대ㅐ
7년 전
게속 게시글없는걸로 출력됩니다.
마르스컴퍼니
7년 전
죄송합니다. 더이상은 잘 모르겠습니다.

다른분의 답을 기다려보거나,

새로 글을 올려보시는 것이 어떨까 싶습니다.
ㅐ늑대ㅐ
7년 전
죄송합니다.
잘 됩니다.

제가 서버에 잘못 없데이트 햇네요.

감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인