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

정렬문제 도와주세요.... 채택완료

romy 7년 전 조회 3,268

정렬이 안되는 아래소스를

</strong></p>

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

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

<p>    </table></p>

<p>    <?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></p>

<p><strong>

 

 

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

</strong></p>

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

<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]'></p>

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

<p> <? }

       if ($i == 0){

        if($is_checkbox) $colspan = 8;

        else $colspan = 8;

        echo "<tr><td colspan='$colspan' align=center height=100 class=contentbg>자료가 없습니다.</td></tr>";

       }

   ?></p>

<p> 

    </tbody>

    </table></p>

<p>    <?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></p>

<p><strong>

 

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

         

 

 

모르겠네요....

도움을 부탁드립니다.  

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

답변 3개

채택된 답변
+20 포인트
S
7년 전

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

정렬의 문제는 쿼리의 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; }

 

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

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

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

답변에 대한 댓글 1개

r
romy
7년 전
아니요.. 위에 소스로 정렬은 잘 됩니다.
제가 구현하고픈 것은
각 column별로 내림차순, 오름차순 sort 하고 싶다는 뜻 입니다.

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

romy
7년 전

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

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

 

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 : "";

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

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

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

S
7년 전

예약일자

==>

예약일자

 

각각의 정렬링크에서 가 빠져있네요...

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

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

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

로그인