최신글 인기순으로 뽑는데 기간내에 게시물수가 모자랄경우에요. > 그누4 질문답변

그누4 질문답변

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

최신글 인기순으로 뽑는데 기간내에 게시물수가 모자랄경우에요. 정보

최신글 인기순으로 뽑는데 기간내에 게시물수가 모자랄경우에요.

본문

제목그대로 인기글을 뽑을때 기간을 오늘하루로 정해서 뽑는데 10개를 뽑을 경우 어떤날은 게시물이 10개가 안될때도 있고 될때도 있고 그렇습니다.ㅎㅎ;

안될때는 게시물수가 모자라 최신글 모양이 영~ 보기가 좋지 않아서 말인데요.

cnt로 오늘 10개가 안될경우 조건문을 어떻게 해야되는지 잘 모르겠습니다.

게시판마다 다 달라서 어떤게시판은 3일에 10개가 되는경우도 있고 10일에 10개가 되는경우도 있고 그렇습니다..

게시물이 10개가 안될경우 10개 이상인 날로 쿼리를 주려고 하니 잘 모르겠어서 질문드립니다..

$before_time = "1";

$before_time = date("Y-m-d H:i:s", mktime() - (86400 * $before_day));

$cnt_row = sql_fetch(" select count(*) as cnt from $tmp_write_table where wr_is_comment = 0 and wr_datetime >= '$before_time' ");

if ($cnt_row[cnt] <= "10"){
$before_time = "2";
} else if ($cnt_row[cnt]*2 <= "10") {
$before_time = "4";
} else {
$before_time = "1";
}

 $sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_datetime >= '$before_time' order by $options desc, wr_comment desc, wr_hit desc limit 0, $rows ";
 $qry = sql_query($sql);


이렇게 했더니 그냥 막나오던데;; 많이 엉터리죠? (ㅡㅡ)?

어떤식으로 처리해야될지 막막한데 도움좀 부탁드립니다...

댓글 전체

for ($i=0; $row = sql_fetch_array($qry); $i++) {
$list[$i] = mw_get_list($row, $board, $latest_skin_path, $subject_len);

                $list[$i][href] = "/bbs/board.php?bo_table=$bo_table&wr_id=$row[wr_id]";
$list[$i][content] = $list[$i][wr_content] = "";
    }

    if ($minute > 0) {
mw_cache_write($cache_file_list, $list);
mw_cache_write($cache_file_board, $board);
    }

이런식입니다. ㅎㅎ;;
10개가 안될경우 10개 이상인 날로 쿼리를 주려고 <-- 어떻게 하려는 것인지 이해가 안되는군요
 다시보니 소스도 좀 이상해보입니다
 $before_time 은 2013-07-02 10:30: 00 <ㅡ-- 이런 형식이어야할텐데
 if ($cnt_row[cnt] <= "10"){
$before_time = "2"; <-- 이건 전혀 엉뚱한 값을 주는군요

3일 합쳐서 10개라면 3일치가 나오면 되는 것 아닌가요?
기본 latest() 함수 소스 그대로 해서 그냥 10개만 보여지면 안되나보죠?
그 소스는 제가 할줄 몰라서 그렇게 수정한거라.. 혼란만 드렸네요.

본래 이렇습니다.

function mw_latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $minute=0, $options, $before_day, $titles="")
{

$before_time = date("Y-m-d H:i:s", mktime() - (86400 * $before_day));

    global $g4;

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

    $cache_file_list = "$g4[path]/data/mw.cache/latest-{$bo_table}-list-{$rows}-{$is_img}-{$subject_len}";
    $cache_file_file = "$g4[path]/data/mw.cache/latest-{$bo_table}-file-{$rows}-{$is_img}-{$subject_len}";
    $cache_file_board = "$g4[path]/data/mw.cache/latest-{$bo_table}-board-{$rows}-{$is_img}-{$subject_len}";

    $list = mw_cache_read($cache_file_list, $minute);
    $board = mw_cache_read($cache_file_board, $minute);
    $file = mw_cache_read($cache_file_file, $minute);

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

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

    $sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_datetime >= '$before_time' order by $options desc, wr_comment desc, wr_hit desc limit 0, $rows ";
    $qry = sql_query($sql);

    for ($i=0; $row = sql_fetch_array($qry); $i++) {
$list[$i] = mw_get_list($row, $board, $latest_skin_path, $subject_len);
                $list[$i][href] = "/bbs/board.php?bo_table=$bo_table&wr_id=$row[wr_id]";
$list[$i][content] = $list[$i][wr_content] = "";
    }

    if ($minute > 0) {
mw_cache_write($cache_file_list, $list);
mw_cache_write($cache_file_board, $board);
    }

}
    }

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

    return $content;
}

본래 이런데 최신글 불러올때

<?  echo mw_latest2("koralla.bbs.best", $top1, 10, 40, 5, "wr_hit", "1",  "타이틀"); ?>
이렇게 하면 하루간 조회순으로 10개를 불러오게 됩니다.

그런데 게시판에 하루 최신글이 10개가 안되고 5개라치면 5개만 불러와서 최신글 스킨이 반이 텅 비게 됩니다.

그래서 게시판에 하루 최신글이 10개가 안될경우 하루간을 이틀간으로, 이틀도 최신글이 10개가 안될경우 삼일간 최신글 중에서 인기순으로 10개를 뽑아왔으면 해서 질문드렸습니다.

이해가 가실런지.. ^^?
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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