게시판 리스트에서 중복은 제거하고 출력 하는 방법

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
게시판 리스트에서 중복은 제거하고 출력 하는 방법

QA

게시판 리스트에서 중복은 제거하고 출력 하는 방법

본문

게시글마다 wr_1에 데이터가 들어가 있어요..

게시물중에 wr_1의 값이 중복되는 게시물(제목은 다름)은 최근걸로 하나만 출력하고 싶습니다.

어떻게 코드를 만져야 할까요 ㅠㅠ

 

이 질문에 댓글 쓰기 :

답변 4

bbs/list.php 에서 뿐만 아니라 어느곳에서 해도 상당히 복잡합니다

대상게시판도 따로 있을 것이고 검색 코드, 하단 페이징 만들기, 전체 게시물수, 공지사항 등

고려사항이 많아서 list.php에 distinct나 group by 넣어서 한줄로 해결될 문제가 아닙니다

===================================

간단한 방법으로는

해당 게시판 스킨 list.skin.php 상단에서

출력할 wr_1에 해당하는 레코드 wr_2에 'OK' 넣는 코드를 만들어서 리스트를 열어본 후 코드삭제

write_update.skin.php 를 만들고

if(!$w){

 1. 신규등록 wr_1값과 같은 기존 wr_1의 wr_2 값 제거 코드

 2. 방금등록한 게시물 wr_2에 'OK' 넣는 코드

}

 

list.php 상단에서 아래 코드만 추가하면 됩니다

if($bo_table=='대상게시판'){ $sfl='wr_2'; $stx='OK'; }

 

 

 

https://github.com/gnuboard/gnuboard5/blob/master/bbs/list.php

에서 SELECT 절에 필드 재 나열, DISTINCT 키워드 또는 GROUP BY 키워드를 추가해 볼수 있는데

문제는 데이터가 많아질수록 성능이 더 떨어집니다.

 

대안으로는 중복데이터를 주기적으로 삭제하는 스케줄링을 하거나

별도 테이블에 중복데이터가 없도록 따로 관리하는 방법이 있습니다.

어디서 사용하시느냐에 따라서 다를듯 합니다.

게시판 리스트에서 하시면 작업이 좀 복잡할듯 하고요.

그외에 출력하시는거라면 distinct 로 중복을 제거하시면 됩니다.


<?php
// 게시물 데이터가 있는 배열 (예시)
$posts = [
    ["title" => "게시물 1", "wr_1" => 100, "date" => "2023-10-01"],
    ["title" => "게시물 2", "wr_1" => 200, "date" => "2023-10-02"],
    ["title" => "게시물 3", "wr_1" => 100, "date" => "2023-10-03"],
    ["title" => "게시물 4", "wr_1" => 300, "date" => "2023-10-04"],
];
// 중복된 wr_1 값을 저장할 배열
$seenWr1 = [];
// 최근 게시물을 저장할 배열
$latestPosts = [];
// 게시물을 순회하면서 중복된 wr_1 값을 처리
foreach (array_reverse($posts) as $post) {
    $wr1 = $post["wr_1"];
    if (!in_array($wr1, $seenWr1)) {
        $seenWr1[] = $wr1;
        $latestPosts[$wr1] = $post;
    }
}
// 최근 게시물 출력
foreach ($latestPosts as $wr1 => $post) {
    echo "게시물 제목: " . $post["title"] . ", wr_1 값: " . $wr1 . ", 날짜: " . $post["date"] . "\n";
}
?>

이 코드를 응용 하라네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 124,335 | RSS
QA 내용 검색

회원로그인

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