대댓글 5개 단 게시물을 array로 불러오려면?

대댓글 5개 단 게시물을 array로 불러오려면?

QA

대댓글 5개 단 게시물을 array로 불러오려면?

본문

게시판 게시물에 댓글에 대댓글 5개를 달아서 

사과-중급-상-소형-1-1000 이런식으로 글등록을 하려고 합니다.

등록한 게시물을 아래처럼 $fruit 변수에 array로 불러오게 하려면

어떻게해야 될까요?

게시판 이름은 test 입니다.

 

$fruit = array(
    '사과' => array(
        '중급' => array(
            '상' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
            '중' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
        ),
        '고급' => array(
            '상' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
            '중' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
        ),
    ),
    
    '복숭아' => array(
        '중급' => array(
            '상' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
            '중' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
        ),
        '고급' => array(
            '상' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
            '중' => array(
                '소형' => array(1 => "1000"),
                '중형' => array(1 => "2000"),
                '대형' => array(1 => "3000"),
            ),
        ),
    ),
)

이 질문에 댓글 쓰기 :

답변 1


$fruit = array();
 
// 메인 게시물 가져오기 (과일명 - 사과, 복숭아 등)
$sql_main = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_is_comment = 0 ORDER BY wr_id ASC";
$result_main = sql_query($sql_main);
while ($row_main = sql_fetch_array($result_main)) {
    $fruit_name = trim($row_main['wr_subject']); // 과일명(사과, 복숭아 등)
    $fruit[$fruit_name] = array();
    
    // 첫번째 댓글 레벨 가져오기 (중급, 고급 등)
    $sql_level1 = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_parent = {$row_main['wr_id']} AND wr_is_comment = 1 AND wr_comment_reply = '' ORDER BY wr_comment ASC";
    $result_level1 = sql_query($sql_level1);
    
    while ($row_level1 = sql_fetch_array($result_level1)) {
        $level1_name = trim($row_level1['wr_content']); // 첫번째 레벨(중급, 고급 등)
        $fruit[$fruit_name][$level1_name] = array();
        
        // 두번째 댓글 레벨 가져오기 (상, 중 등)
        $sql_level2 = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_parent = {$row_main['wr_id']} AND wr_is_comment = 1 AND wr_comment = {$row_level1['wr_comment']} AND wr_comment_reply = 'A' ORDER BY wr_comment, wr_comment_reply ASC";
        $result_level2 = sql_query($sql_level2);
        
        while ($row_level2 = sql_fetch_array($result_level2)) {
            $level2_name = trim($row_level2['wr_content']); // 두번째 레벨(상, 중 등)
            $fruit[$fruit_name][$level1_name][$level2_name] = array();
            
            // 세번째 댓글 레벨 가져오기 (소형, 중형, 대형 등)
            $sql_level3 = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_parent = {$row_main['wr_id']} AND wr_is_comment = 1 AND wr_comment = {$row_level1['wr_comment']} AND wr_comment_reply = 'AA' ORDER BY wr_comment, wr_comment_reply ASC";
            $result_level3 = sql_query($sql_level3);
            
            while ($row_level3 = sql_fetch_array($result_level3)) {
                $level3_name = trim($row_level3['wr_content']); // 세번째 레벨(소형, 중형, 대형 등)
                $fruit[$fruit_name][$level1_name][$level2_name][$level3_name] = array();
                
                // 네번째 댓글 레벨 가져오기 (1)
                $sql_level4 = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_parent = {$row_main['wr_id']} AND wr_is_comment = 1 AND wr_comment = {$row_level1['wr_comment']} AND wr_comment_reply = 'AAA' ORDER BY wr_comment, wr_comment_reply ASC";
                $result_level4 = sql_query($sql_level4);
                
                while ($row_level4 = sql_fetch_array($result_level4)) {
                    $level4_key = trim($row_level4['wr_content']); // 네번째 레벨(1)
                    
                    // 다섯번째 댓글 레벨 가져오기 (1000)
                    $sql_level5 = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_parent = {$row_main['wr_id']} AND wr_is_comment = 1 AND wr_comment = {$row_level1['wr_comment']} AND wr_comment_reply = 'AAAA' ORDER BY wr_comment, wr_comment_reply ASC";
                    $result_level5 = sql_query($sql_level5);
                    
                    if ($row_level5 = sql_fetch_array($result_level5)) {
                        $level5_value = trim($row_level5['wr_content']); // 다섯번째 레벨(1000)
                        $fruit[$fruit_name][$level1_name][$level2_name][$level3_name][$level4_key] = $level5_value;
                    }
                }
            }
        }
    }
}

print_r($fruit);
답변을 작성하시기 전에 로그인 해주세요.
전체 15,826
QA 내용 검색
filter #php ×

회원로그인

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