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

전체 게시판에서 내가 작성한 게시글 / 댓글 개수 가져오기

· 1년 전 · 1122 · 3

 

이번에 업데이트 하는 과정에서 나온 코드입니다.

 

내가 활동한 전체 게시판의 게시글 내역수 + 댓글 내역수를 출력하고자 하는 데 목적이 있습니다.

 

원하는 페이지에 코드를 넣으시면 끝입니다.

 

[code]

 

<?php

 

function getUserBoardActivity(array $exclude_boards = []) {

    global $member;  // 회원 정보를 가져옵니다.

    // 배열을 SQL 쿼리에서 사용할 수 있는 문자열로 변환

    $exclude_clause = '';

    if (!empty($exclude_boards)) {

        $exclude_boards_string = "'" . implode("', '", $exclude_boards) . "'";

        $exclude_clause = " WHERE `bo_table` NOT IN ({$exclude_boards_string})";

    }

 

    // 제외할 게시판을 제외한 모든 게시판 정보를 가져옵니다.

    $sql = "SELECT * FROM `g5_board`" . $exclude_clause;

    $result = sql_query($sql); // 쿼리 실행

    $all_boards_info = [];  // 모든 게시판 정보를 저장할 배열

 

    while ($board = sql_fetch_array($result)) {

        $bo_table = $board['bo_table'];  // 게시판 테이블명을 가져옵니다.

        $bo_subject = $board['bo_subject'];  // 게시판 제목을 가져옵니다.

 

        // 해당 게시판에서 회원의 게시글 수를 구하는 쿼리

        $query = "SELECT COUNT(*) AS count FROM g5_write_{$bo_table} WHERE mb_id = '{$member['mb_id']}' AND wr_is_comment = '0'";

        $write_count_result = sql_query($query);

        $write_count = sql_fetch_array($write_count_result)['count'];

 

        // 해당 게시판에서 회원의 댓글 수를 구하는 쿼리

        $query2 = "SELECT COUNT(*) AS count FROM g5_write_{$bo_table} WHERE mb_id = '{$member['mb_id']}' AND wr_is_comment = '1'";

        $comment_count_result = sql_query($query2);

        $comment_count = sql_fetch_array($comment_count_result)['count'];

 

        // 각 게시판 정보를 배열에 저장

        $all_boards_info[] = array(

            'bo_subject' => $bo_subject,

            'total_write_count' => $write_count,

            'total_comment_count' => $comment_count

        );

    }

    return $all_boards_info;  // 모든 게시판 정보를 배열로 반환

}

// $results = getUserBoardActivity(["free", "notice"]); // 자유게시판 및 공지사항 게시판을 제외한 모든 게시판 정보를 가져옵니다.

$results = getUserBoardActivity(); // 전체 게시판 정보를 가져 옵니다.

foreach ($results as $result) {

    echo "게시판: " . $result['bo_subject'] . "<br>";

    echo "작성한 게시글 수: " . $result['total_write_count'] . "<br>";

    echo "작성한 댓글 수: " . $result['total_comment_count'] . "<br>";

}

?>

[/code]

 

전체 다 가져오는 코드 / 제외 코드 (주석) 포함하였으니 참고하셔서 사용하시면 될 것 같습니다.

 

위 코드를 그대로 원하는 페이지에 넣으시면 아래 처럼 결과를 얻을 수 있으며, 원하는데로 스타일링 해서 사용하시면 됩니다.

 

 

고맙습니다.

댓글 작성

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

로그인하기

댓글 3개

1년 전

감사합니다 ^^

1년 전

감사합니다

감사합니다.

게시글 목록

번호 제목
21816
21804
21803
21802
21801
21791
21773
21768
21758
21753
21750
21729
21712
21686
21682
21675
21671
21669
21657
21637
21633
21631
21623
21594
21592
21589
21580
21567
21565
21542