정렬문제 도와주세요....
본문
정렬이 안되는 아래소스를
<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> 가 빠져있네요...