지금은 해당 게시판의 모든 게시물을 랜덤으로 보여주고있는데,
해당 게시판의 최근게시물 10개중에서 랜덤으로 보여주려면 어디를 수정해야하나요?
출력시
<?php echo latest_rand2("side_latest_main", "job", 5, 15, 6); ?>
아래는 latest.lib.php입니다.
Copy
if(!G5_USE_CACHE || $cache_fwrite) { $list = array(); $sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' "; $board = sql_fetch($sql); $bo_subject = get_text($board['bo_subject']); $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름 //$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 order by rand() desc limit 0, {$rows} "; //대체쿼리 시작 $sql = " select wr_id from {$tmp_write_table} where wr_is_comment = 0 order by rand() desc limit 10, {$rows} "; // 최신글 10개만뿌리기 $result = sql_query($sql); $sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and ( wr_id in ("; for ($i=0; $row = sql_fetch_array($result); $i++) { $sql = $sql.$row[wr_id].","; } $sql = substr($sql,0,strlen($sql) - 1)."))"; //대체쿼리 끝 $result = sql_query($sql); for ($i=0; $row = sql_fetch_array($result); $i++) { $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len); } if($cache_fwrite) { $handle = fopen($cache_file, 'w'); $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject=\"".$bo_subject."\";\n\$list=".var_export($list, true)."?>"; fwrite($handle, $cache_content); fclose($handle); } }
답변 1개
채택된 답변
+20 포인트
2016-03-24 (목) 20:12:33
10개의 게시물을 먼저 $list에 담아놓고 shuffle($list); 하시면 랜덤으로 배열이 섞입니다.
답변을 작성하려면 로그인이 필요합니다.