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

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

GNUAPP 7개월 전 조회 2,483

게시판 게시물에 댓글에 대댓글 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개

채택된 답변
+20 포인트
7개월 전

</p>

<p>$fruit = array();</p>

<p> </p>

<p>// 메인 게시물 가져오기 (과일명 - 사과, 복숭아 등)

$sql_main = "SELECT * FROM {$g5['write_prefix']}test WHERE wr_is_comment = 0 ORDER BY wr_id ASC";

$result_main = sql_query($sql_main);</p>

<p>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;

                    }

                }

            }

        }

    }

}</p>

<p>

print_r($fruit);</p>

<p>

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

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

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

로그인