정렬문제 도와주세요....

정렬문제 도와주세요....

QA

정렬문제 도와주세요....

본문

정렬이 안되는 아래소스를


<script>
var g5_bbs_skin_url = "<?php echo $board_skin_url; ?>";
</script>
<script src="<?php echo $board_skin_url; ?>/script.js"></script>
<link rel="stylesheet" href="<?php echo $board_skin_url; ?>/style.css">
<form id="mara_list" name="fboardlist" method="post" style="width:<?php echo $width; ?>;">
    <p>
        <input type="hidden" name="bo_table" value="<?php echo $bo_table; ?>">
        <input type="hidden" name="page" value="<?php echo $page; ?>">
        <input type="hidden" name="sw" value="">
    </p>

    <table class="mara_rl">
    <caption>업그레이드 예약목록</caption>
    <colgroup>
        <col class="rm_grid_1"><!-- 5% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_4"><!-- 20% -->
        <col class="rm_grid_4"><!-- 20% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_3"><!-- 15% -->
        <col class="rm_grid_2"><!-- 10% -->
    </colgroup>
    <thead>
    <tr>
        <?php if ($is_checkbox) { ?>
        <th scope="col">
            <label for="chkall" class="sound_only">게시물 전체</label>
            <input type="checkbox" id="chkall" onclick="if(this.checked) all_checked(true);else all_checked(false);">
        </th>
        <?php } ?>
        <th scope="col"><?php echo subject_sort_link('datetime2', $qstr2, 1) ?>예약일자</th>
        <th scope="col"><?php echo subject_sort_link('subject', $qstr2, 1) ?>업그레이드 공사정보</th>
        <th scope="col"><?php echo subject_sort_link('wr_1', $qstr2, 1) ?>공사일자</th>
        <th scope="col"><?php echo subject_sort_link('name', $qstr2, 1) ?>예약자정보</th>
        <th scope="col"><?php echo subject_sort_link('mb_id', $qstr2, 1) ?>예약자ID</th>
        <th scope="col"><?php echo subject_sort_link('wr_7', $qstr2, 1) ?>이용금액</th>
        <th scope="col"><?php echo subject_sort_link('wr_10', $qstr2, 1) ?>세금계산서</th>
    </tr>
    </thead>
    <tbody>
    <?php for($i = 0; $i < count($list); $i++) { ?>
    <tr>
        <?php if ($is_checkbox) { ?>
        <td>
            <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>
            <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
        </td>
        <?php } ?>
        <td><?php echo $list[$i]['datetime2']; ?></td>
        <td>
          <span class="frm_info"><a href="<?php echo $list[$i]['href']; ?>"><strong><?php echo $list[$i]['subject']; ?></strong></a></span></br>
            (<?php echo $list[$i]['wr_3']; ?>~<?php echo $list[$i]['wr_3'] + 1; ?>일, <?php echo $list[$i]['wr_4']; ?>대)
        </td>
        <td><?php echo $list[$i]['wr_1']; ?> ~ <?php echo $list[$i]['wr_2']; ?></td>
        <td>
          <span class="frm_info"><?php echo $list[$i]['name']; ?></span></br>
            <?php echo $list[$i]['wr_homepage']; ?>
        </td>
        <td>
          <span class="frm_info"><?php echo $list[$i]['mb_id']; ?></span>
        </td>
        <td>
            <span class="frm_info"><?php if($list[$i]['wr_7'] == 'T'){ echo '<strong>예약승인</strong>'; } else{ echo '<strong>예약접수</strong>'; } ?></span>
            <?php echo number_format($list[$i]['wr_6']); ?>원
        </td>
        <td>
            <span class="frm_info"><?php if($list[$i]['wr_10'] == 'T'){ echo '<strong>발행</strong>'; } else{ echo '<strong>미발행</strong>'; } ?></span>
        </td>
    </tr>
    <?php } // for 끝
    if ($i == 0) {
        if($is_checkbox) $colspan = 8;
        else $colspan = 8;
        echo '<tr><td colspan="'.$colspan.'" class="empty_table">예약 내역이 없습니다.</td></tr>';
    }
    ?>
    </tbody>
    </table>
    <?php echo $write_pages; ?>
    <div class="mara_btn_area">
        <a href="#none" onclick="selectFinish();"><img src="<?php echo $board_skin_url; ?>/img/b_finish.gif" alt="예약완료"></a>
        <a href="#none" onclick="select_delete();"><img src="<?php echo $board_skin_url; ?>/img/b_delete.gif" alt="예약취소"></a>
        <a href="#none" onclick="select_copy('copy');"><img src="<?php echo $board_skin_url; ?>/img/b_copy.gif" alt="복사하기"></a>
        <a href="#none" onclick="select_copy('move');"><img src="<?php echo $board_skin_url; ?>/img/b_move.gif" alt="이동하기"></a>
        <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&type=false"><img src="<?php echo $board_skin_url; ?>/img/b_calendar.gif" alt="달력보기"></a>
    </div>
</form>

 

 

다음과 같이 바꾸었습니다. 왜 안될까요?


<script>
var g5_bbs_skin_url = "<?php echo $board_skin_url; ?>";
</script>
<script src="<?php echo $board_skin_url; ?>/script.js"></script>
<link rel="stylesheet" href="<?php echo $board_skin_url; ?>/style.css">
<form id="mara_list" name="fboardlist" method="post" style="width:<?php echo $width; ?>;">
    <p>
        <input type="hidden" name="bo_table" value="<?php echo $bo_table; ?>">
     <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
     <input type="hidden" name="stx" value="<?php echo $stx ?>">
     <input type="hidden" name="spt" value="<?php echo $spt ?>">
     <input type="hidden" name="sca" value="<?php echo $sca ?>">
        <input type="hidden" name="page" value="<?php echo $page; ?>">
        <input type="hidden" name="sw" value="">
    </p>

    <table class="mara_rl">
    <caption>업그레이드 예약목록</caption>
    <colgroup>
        <col class="rm_grid_1"><!-- 5% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_4"><!-- 20% -->
        <col class="rm_grid_4"><!-- 20% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_2"><!-- 10% -->
        <col class="rm_grid_3"><!-- 15% -->
        <col class="rm_grid_2"><!-- 10% -->
    </colgroup>
    <thead>
    <tr>
        <?php if ($is_checkbox) { ?>
        <th scope="col">
            <label for="chkall" class="sound_only">게시물 전체</label>
            <input type="checkbox" id="chkall" onclick="if(this.checked) all_checked(true);else all_checked(false);">
        </th>
        <?php } ?>
        <th scope="col"><?php echo subject_sort_link('datetime2', $qstr2, 1) ?>예약일자</th>
        <th scope="col"><?php echo subject_sort_link('subject', $qstr2, 1) ?>업그레이드 공사정보</th>
        <th scope="col"><?php echo subject_sort_link('wr_1', $qstr2, 1) ?>공사일자</th>
        <th scope="col"><?php echo subject_sort_link('name', $qstr2, 1) ?>예약자정보</th>
        <th scope="col"><?php echo subject_sort_link('mb_id', $qstr2, 1) ?>예약자ID</th>
        <th scope="col"><?php echo subject_sort_link('wr_7', $qstr2, 1) ?>이용금액</th>
        <th scope="col"><?php echo subject_sort_link('wr_10', $qstr2, 1) ?>세금계산서</th>
    </tr>
    </thead>
    <tbody>
 
 <?
      for ($i=0; $row=sql_fetch_array($result); $i++) {
     $list = $i%2;
    ?>
    <input type=hidden name=no[$i] value='$row[no]'>
    <tr>
        <?php if ($is_checkbox) { ?>
        <td>
            <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $row['subject'] ?></label>
            <input type="checkbox" name="chk_wr_id[]" value="<?php echo $row['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
        </td>
        <?php } ?>
        <td><?php echo $row[datetime2]; ?></td>
        <td>
          <span class="frm_info"><a href="<?php echo $row['href']; ?>"><strong><?php echo $row['subject']; ?></strong></a></span></br>
            (<?php echo $row['wr_3']; ?>~<?php echo $row['wr_3'] + 1; ?>일, <?php echo $row['wr_4']; ?>대)
        </td>
        <td><?php echo $row['wr_1']; ?> ~ <?php echo $row['wr_2']; ?></td>
        <td>
          <span class="frm_info"><?php echo $row['name']; ?></span></br>
            <?php echo $row['wr_homepage']; ?>
        </td>
        <td>
          <span class="frm_info"><?php echo $row['mb_id']; ?></span>
        </td>
        <td>
            <span class="frm_info"><?php if($row['wr_7'] == 'T'){ echo '<strong>예약승인</strong>'; } else{ echo '<strong>예약접수</strong>'; } ?></span>
            <?php echo number_format($row['wr_6']); ?>원
        </td>
        <td>
            <span class="frm_info"><?php if($row['wr_10'] == 'T'){ echo '<strong>발행</strong>'; } else{ echo '<strong>미발행</strong>'; } ?></span>
        </td>
    </tr>
 <? }
       if ($i == 0){
        if($is_checkbox) $colspan = 8;
        else $colspan = 8;
        echo "<tr><td colspan='$colspan' align=center height=100 class=contentbg>자료가 없습니다.</td></tr>";
       }
   ?>
 
    </tbody>
    </table>
    <?php echo $write_pages; ?>
    <div class="mara_btn_area">
        <a href="#none" onclick="selectFinish();"><img src="<?php echo $board_skin_url; ?>/img/b_finish.gif" alt="예약완료"></a>
        <a href="#none" onclick="select_delete();"><img src="<?php echo $board_skin_url; ?>/img/b_delete.gif" alt="예약취소"></a>
        <a href="#none" onclick="select_copy('copy');"><img src="<?php echo $board_skin_url; ?>/img/b_copy.gif" alt="복사하기"></a>
        <a href="#none" onclick="select_copy('move');"><img src="<?php echo $board_skin_url; ?>/img/b_move.gif" alt="이동하기"></a>
        <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&type=false"><img src="<?php echo $board_skin_url; ?>/img/b_calendar.gif" alt="달력보기"></a>
    </div>
</form>

 

다음 부분이 문제인거 같긴한데....... (48열)

  <tbody>
 
 <?
      for ($i=0; $row=sql_fetch_array($result); $i++) {
     $list = $i%2;
    ?>
    <input type=hidden name=no[$i] value='$row[no]'>

 

 

모르겠네요....

도움을 부탁드립니다.
 

이 질문에 댓글 쓰기 :

답변 3

정렬이 안되는 이유로 기존 파일을 수정하신 거라면 일단 기존파일로 원복하셔야 할꺼 같습니다.

정렬의 문제는 쿼리의 sort 문제이기 때문에 스킨파일과는 관련이 없습니다.

목록이 나오는 쿼리문쪽(/bbs/list.php)을 체크해 봐야 할 사항입니다.

 

수정하신 스킨파일이 출력되지 않는 문제는 

for ($i=0; $row=sql_fetch_array($result); $i++) { 

이 부분이 잘못되었기 때문입니다.

 

그누보드의 게시판 목록은 /bbs/list.php 파일에서 해당 내용을 $list 라는 변수에 배열로 담은 후

스킨파일에서 $list 담긴 배열의 갯수 만큼 루프를 돌리는 형식입니다.

 

일단 기존 스킨파일로 원복하시고...

 

정렬쿼리가 정상적으로 작동하는 지 확인해 보시면서 원인을 찾아서 수정하시면 됩니다.

 

쿼리문은 /bbs/list.php 파일 여셔서 189줄 정도에 보시면

//페이지의 공지개수가 목록수 보다 작을 때만 실행

이부분 위에다가 echo 로 찍어주시면 됩니다.

 

if($bo_table=="해당게시판아이디"){ echo $sql; }

 

그후에 정렬기능을 실행해 보시면 쿼리문이 출력될꺼에요.

해당 쿼리문을 디비에 직접 실행해 보시면 원인을 찾으실 수 있습니다.

------------------------------------------------------------------------------------------------------

마침네 정답을 찾았습니다. 참고하세요

 

bbs/list.php에서

    $sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";

   에서 정렬하고자하는 컬럼을 넣으면 됩니다. 필자의 경우는

    $sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood|wr_name|wr_1|wr_homepage|mb_id|wr_7|wr_10)$/i", $sst) ? $sst : "";

를 추가하니 모든것이 해결.....

<th scope="col"><?php echo subject_sort_link('datetime2', $qstr2, 1) ?>예약일자</th>

==>

<th scope="col"><?php echo subject_sort_link('datetime2', $qstr2, 1) ?>예약일자</a></th>

 

각각의 정렬링크에서 </a> 가 빠져있네요...

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

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