qa php_code 문의 드립니다.

qa php_code 문의 드립니다.

QA

qa php_code 문의 드립니다.

본문


    <div class="tbl_head01 tbl_wrap">
        <table>
        <caption><?php echo $board['bo_subject'] ?> 목록</caption>
        <thead>

생략
        </thead>
        <tbody>
        <?php
        for ($i=0; $i<count($list); $i++) {
        ?>
        <tr>
            <?php if ($is_checkbox) { ?>
            <td class="td_chk">
                <label for="chk_qa_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject']; ?></label>
                <input type="checkbox" name="chk_qa_id[]" value="<?php echo $list[$i]['qa_id'] ?>" id="chk_qa_id_<?php echo $i ?>">
            </td>
            <?php } ?>
            <td class="td_num"><?php echo $list[$i]['num']; ?></td>
            <td class="td_subject">
                <span class="bo_cate_link"><?php echo $list[$i]['category']; ?></span>
                <a href="<?php echo $list[$i]['view_href']; ?>" class="bo_tit">
                    <?php echo $list[$i]['subject']; ?>
                    <?php if ($list[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ; ?>
                </a>
            </td>
            <td class="td_name"><?php echo $list[$i]['name']; ?></td>
            <td class="td_date"><?php echo $list[$i]['date']; ?></td>
            <td class="td_stat"><span class=" <?php echo ($list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($list[$i]['qa_status'] ? '<i class="fa fa-check-circle" aria-hidden="true"></i> 답변완료' : '<i class="fa fa-times-circle" aria-hidden="true"></i> 답변대기'); ?></span></td>
        </tr>      
        <?php
        }
        ?>

        <?php if ($i == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
        </tbody>
        </table>
    </div>
 

위 코드는 qa스킨의 list.skin.php의 1:1문의 리스트 출력 테이블입니다. 노란색 코드를 보면 for문 안에 <tbody>의 <tr>를 출력하는 코드인데요. 이부분을 강의나 영상제작시에 말로서 설명할때 어떻게 해야할지 궁금합니다.

"초기값을 없는 상태(0)로 두고 1:1문의 게시글이 있는 경우에 하나씩 증가시켜 1:1게시글을 배열( array)로 가지고 와서 게시물 전부를 출력해주는 코드입니다. 예를들어 1:1게시글이 10개있으면 게시물을 하나씩 순차적으로 출력하여 10개를 모두 출력한후에 for문을 종료하라는 의미입니다. "  이렇게 설명하면 될지 모르겠습니다.

 

그리고 파란색은 1:1문의 게시글의 제목을 출력하는 부분인데요 "해당 순번의 배열에서 게시물의 제목을 출력해줍니다" 이렇게 설명하면 될런지요?

 

어렴풋이 알아서 말로서 설명할때 한계를 느끼는데요.

말로 설명할때 어떻게 하면 좋을 지 고수님들의 조언을 부탁드립니다.

감사합니다

이 질문에 댓글 쓰기 :

답변 3

PHP 내장함수에

 

count( array ) 는

 

array 가 배열일경우 

몇개가 존재하는지 숫자를 알려줍니다.

 

중간의 출력할

 

<?php echo $list[$i]['subject']; ?>

 

에서 보시면

 2차원배열인

$list[$i][$subject] 라는 값은

 

$i 번째 Row의 $subject값을 추출하는것이죠

 

보통 그누보드의 기본형을따르면

 

$list 값은

 

/bbs/list.php 에서 보통가져오는ㄷ

 

$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);

 

이 문장을 통해서 가져옵니다.

 

게시물의 검색조건에 해당되는(조건없으면 전체) 

해당 행번호의 값의 배열에

 

게시물의 내용전체를 새롭게 담는 구조입니다.

 

common.lib.php 파일에서

get_list의

    if ($subject_len)
        $list['subject'] = conv_subject($list['wr_subject'], $subject_len, '…');
    else
        $list['subject'] = conv_subject($list['wr_subject'], $board['bo_subject_len'], '…');
 

에서 해당 값을 가져와서

 

돌려주는 집합(배열)이

$list[$i] = $row <--이건 해당 Row의 배열값 

형태로 리스트를 통째로 가져서 담게됩니다.

 

그러니 스킨에서 출력할때도 사용하기 쉽게 subject 값을 추출가능하게되죠

 

설명을 쉽게하시려면 이해를 완벽하게 하시는게 중요할듯하여 

조금 자세히 설명드렸습니다.

 

 

2차원배열인경우

1차원의 값의 수만 넘겨줍니다.

즉, Row수를 넘겨준다고 생각하면 쉽습니다.

 

for ($i = 0; $i < count($list); $i++ {

 

}

 

의 문장에서 $i 값이 증가할 한계는 $list가 포함된 Row수라고 생각하면 된다고 보셔야죠

 

 

  1. 노란영역 부분은 반복문 for문을 이용한 리스트 출력 부분입니다.
  2.  "for ($i=0; $i<count($list); $i++) {" 
    변수 $i는 0으로 초기값을 부여하여 $i 가 $list 의 총 갯수 보다 작을때까지 반복합며 $i는 1씩증가합니다.
  3. for 문의 내용이 위 조건에($i<count($list);) 이 true 일때까지 for문 안의 내용이 반복합니다.

좋은데 추가하자면

첫번째것) 관리자모드 > 환경설정 > 기본환경설정의 <한페이지당 라인수>에 설정된 값만큼

라인을 가져와

 

세번째것) for문이 끝났으니 중괄호로 닫아 주는 겁니다.

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

회원로그인

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