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

메인에 분류별 최신글 뽑아오는 질문입니다. 채택완료

디자인럽 9년 전 조회 4,820

사용한 스킨은 http://sir.co.kr/g5_skin/3783?sca=%EC%B5%9C%EC%8B%A0%EA%B8%80&sfl=wr_subject%7C%7Cwr_content&stx=%EA%B0%A4%EB%9F%AC%EB%A6%AC&page=2">http://sir.co.kr/g5_skin/3783?sca=%EC%B5%9C%EC%8B%A0%EA%B8%80&sfl=wr_subject%7C%7Cwr_content&stx=%EA%B0%A4%EB%9F%AC%EB%A6%AC&page=2 이거구요

 

제 질문은 분류별로 최신글을 추출하려면 어떻게 해야하나요?

 

현재 메인 추출 소스는

이렇게 해서 분류1의 게시물을 메인에 뽑아오게끔 했구요

 

 

 

latest.lib.php 소스는

 

// 최신글 추출 // $cache_time 캐시 갱신시간 function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='') {     global $g5;

    if (!$skin_dir) $skin_dir = 'basic';

    if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {         if (G5_IS_MOBILE) {             $latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];             if(!is_dir($latest_skin_path))                 $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];             $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);         } else {             $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];             $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);         }         $skin_dir = $match[1];     } else {         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;         }     }

    $cache_fwrite = false;     if(G5_USE_CACHE) {         $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

        if(!file_exists($cache_file)) {             $cache_fwrite = true;         } else {             if($cache_time > 0) {                 $filetime = filemtime($cache_file);                 if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {                     @unlink($cache_file);                     $cache_fwrite = true;                 }             }

            if(!$cache_fwrite)                 include($cache_file);         }     }

    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 wr_num limit 0, {$rows} ";         $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 = "";             fwrite($handle, $cache_content);             fclose($handle);         }     }

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

    return $content; } ?>

 

 

// 최신글 추출 // $cache_time 캐시 갱신시간 function latest_cate($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='',$category="")

{

    global $g5;

    //static $css = array();

 

    if (!$skin_dir) $skin_dir = 'basic';

 

    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;

    }

 

    $cache_fwrite = false;

    if(G5_USE_CACHE) {

        $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

 

        if(!file_exists($cache_file)) {

            $cache_fwrite = true;

        } else {

            if($cache_time > 0) {

                $filetime = filemtime($cache_file);

                if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {

                    @unlink($cache_file);

                    $cache_fwrite = true;

                }

            }

 

            if(!$cache_fwrite)

                include($cache_file);

        }

    }

 

    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} ca_name = '{$category}' order by wr_num limit 0, {$rows} ";

        $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 = "";

            fwrite($handle, $cache_content);

            fclose($handle);

        }

    }

 

    ob_start();

    include $latest_skin_path.'/latest.skin.php';

    $content = ob_get_contents();

    ob_end_clean();

 

    return $content;

}

?> 

이렇게 했습니다.

 

그런데도 test게시판의 분류1만의 게시물이 나오지않고 전체게시물이 나옵니다.

이럴땐 어떻게 해야하나요? 

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

답변 3개

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

function latest_cate($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='',$category="")

 

위와 같이 특정 카테고리를 뽑아 오는 함수를 작성해 두셨네요. ㅎㅎㅎ

 

 

요렇게 해보세요. 

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

답변에 대한 댓글 1개

디자인럽
9년 전
답변주신것처럼
<?php
echo latest_cate("basic", "test", 5, 10,"", "", "분류1");
?>
이렇게 했는데도 똑같이 모든 게시물이 출력이 되요

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

9년 전

해당 홈페이지 주소 쪽지로 알려주세요.

카테고리 이름은 똑바로 적으셨나요?

설마 "분류1"이라고 하지는 않으셨겠죠? ㅎ 

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

답변에 대한 댓글 1개

디자인럽
9년 전
쪽지 보내드렸어요~

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

9년 전

쿼리문이 이상하네요.

 

$sql = " select * from {$tmp_write_table} ca_name = '{$category}' order by wr_num limit 0, {$rows} ";

 

이것을

 

$sql = " select * from {$tmp_write_table} where ca_name='{$ca_name}' and wr_is_comment = 0 order by wr_num limit 0, {$rows} ";

 

요렇게 바꿔보세요. 

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

답변에 대한 댓글 1개

디자인럽
9년 전
그렇게 바꿨는데도 똑같아요..

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

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

로그인