최신글 인기순으로 뽑는데 기간내에 게시물수가 모자랄경우에요.
제목그대로 인기글을 뽑을때 기간을 오늘하루로 정해서 뽑는데 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);
이렇게 했더니 그냥 막나오던데;; 많이 엉터리죠? (ㅡㅡ)?
어떤식으로 처리해야될지 막막한데 도움좀 부탁드립니다...
안될때는 게시물수가 모자라 최신글 모양이 영~ 보기가 좋지 않아서 말인데요.
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);
이렇게 했더니 그냥 막나오던데;; 많이 엉터리죠? (ㅡㅡ)?
어떤식으로 처리해야될지 막막한데 도움좀 부탁드립니다...
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 4개
$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);
}
이런식입니다. ㅎㅎ;;
다시보니 소스도 좀 이상해보입니다
$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개를 뽑아왔으면 해서 질문드렸습니다.
이해가 가실런지.. ^^?