카테고리에 추가옵션을 지정하고 정렬했을경우...정렬이 되지 않는문제.. 정보
카테고리에 추가옵션을 지정하고 정렬했을경우...정렬이 되지 않는문제..본문
팁앤테크도 참조하고..질답란도 참조해서..
사이트디렉토리스킨을 하나 만들다가 리스트화면과 카테고리와 관련해서 생긴 게시물 정렬문제입니다.
먼저 설명을 드리면...
리스트화면에서
1) 나중에 입력하는 게시물이 뒤로 가도록 하되,
2) wr_1 에 입력한 숫자값이 높을수록 게시물 제일 앞쪽으로 오게 하는 조건이 였습니다.
wr_1 이라는 여유필드에는 1,2,3,4 중에 하나를 셀렉트 할수있도록 하고 기본값으로 1을 지정했습니다.
이렇게 해서 다음과 같은 조건으로 위 그림에서 '전체목록'에 링크를 만들었는데 이건 잘됩니다.
board.php?bo_table=<?=$bo_table?>&sop=and&sst=wr_1&sod=desc&sfl=&stx=&page=1
근데..문제는 카테고리 정렬에 좀 문제가 생겼습니다.
카테고리를 '텍스트형식'으로 뿌려주도록 했고 해당 카테고리를 클릭하면
그기서도 위조건과 마찬가지로
역순으로 정렬하되, wr_1을 기준으로 선택값이 높은 순으로 게시물 맨앞쪽으로 하도록 했는데...
이게 잘 되지 아니합니다.
더구나 2페이지로 넘어가면 정렬은 고사하고, 등록된 게시물이 빠짐과 동시에 1페이지에 있는 게시물이 한번더 나타나게 됩니다.
'그림'은 아래처럼 카테고리에 걸린 링크인데 형식은 윗쪽 테이블명에서 링크한 형식과 같은데..
뭐가 잘못되었는지 모르겠습니다.
<a href='./board.php?bo_table=$bo_table&sca=카테고리명&sst=$wr_1&sod=desc&sfl=&stx=&page=1'>카테고리명</a>
-----------------------------------------------
아래 내용은 '카테고리' 출력코드
-----------------------------------------------
(카테고리별 출력이며, 포함된 게시물의갯수등은 정상인데...위내용처럼 링크가 문제..)
<!-- 분류 셀렉트 박스 시작 -->
<? $cnt_bo_1 = 6; // 한줄당 분류 갯수 ?>
<? if (!$wr_id) { ?>
<!-- 분류 셀렉트 박스 시작 -->
<?
$cnt = 1;
$sql = " SELECT bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$arr = explode("|", $row[bo_category_list]); // 구분자가 , 로 되어 있음
$str = "";
$str .= "<tr>";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i])) {
$sql1 = " SELECT count(*) as cCount FROM $write_table WHERE ca_name = '$arr[$i]' and wr_comment >= 0 ";
$row1 = sql_fetch($sql1);
$str .= "<td height=24><img src='{$board_skin_path}/img/ico_folder.gif' width='13' height='11'> <a class='cate' href='./board.php?bo_table=$bo_table&sca={$arr[$i]}&sod=desc&sop=&sst=wr_1'>$arr[$i] ($row1[cCount])</a></td>";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "</tr><tr>"; }
$cnt++;
}
$sql2 = " SELECT count(*) as cCount FROM $write_table WHERE wr_comment >= 0 ";
$row2 = sql_fetch($sql2);
$Total_Cat = $row2[cCount]
?>
<table width=100% cellspacing=1 cellpadding=4 border=0 style=table-layout:fixed>
<col width=100></col>
<col width=20></col>
<col width=></col>
<tr bgcolor=white>
<td width='' align='center'>
<img src='<?=$board_skin_path?>/img/ico_folder.gif' width='13' height='11'> <a class='cate' href='./board.php?bo_table=<?=$bo_table?>&sop=&sst=wr_1&sod=desc&sfl=&stx=&page=1'><b>전체목록</b></a>
</td>
<td nowrap> </td>
<td width='' style='word-break:break-all;'>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<span class="cate"><?=$str?></span>
</table>
</td>
</tr>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td height=1 class=line1 style=height:1px><img src=<?=$board_skin_path?>/img/tab.gif border=0 height=1></td></tr></table>
<!-- 분류 셀렉트 박스 끝 -->
<? } ?>
사이트디렉토리스킨을 하나 만들다가 리스트화면과 카테고리와 관련해서 생긴 게시물 정렬문제입니다.
먼저 설명을 드리면...
리스트화면에서
1) 나중에 입력하는 게시물이 뒤로 가도록 하되,
2) wr_1 에 입력한 숫자값이 높을수록 게시물 제일 앞쪽으로 오게 하는 조건이 였습니다.
wr_1 이라는 여유필드에는 1,2,3,4 중에 하나를 셀렉트 할수있도록 하고 기본값으로 1을 지정했습니다.
이렇게 해서 다음과 같은 조건으로 위 그림에서 '전체목록'에 링크를 만들었는데 이건 잘됩니다.
board.php?bo_table=<?=$bo_table?>&sop=and&sst=wr_1&sod=desc&sfl=&stx=&page=1
근데..문제는 카테고리 정렬에 좀 문제가 생겼습니다.
카테고리를 '텍스트형식'으로 뿌려주도록 했고 해당 카테고리를 클릭하면
그기서도 위조건과 마찬가지로
역순으로 정렬하되, wr_1을 기준으로 선택값이 높은 순으로 게시물 맨앞쪽으로 하도록 했는데...
이게 잘 되지 아니합니다.
더구나 2페이지로 넘어가면 정렬은 고사하고, 등록된 게시물이 빠짐과 동시에 1페이지에 있는 게시물이 한번더 나타나게 됩니다.
'그림'은 아래처럼 카테고리에 걸린 링크인데 형식은 윗쪽 테이블명에서 링크한 형식과 같은데..
뭐가 잘못되었는지 모르겠습니다.
<a href='./board.php?bo_table=$bo_table&sca=카테고리명&sst=$wr_1&sod=desc&sfl=&stx=&page=1'>카테고리명</a>
-----------------------------------------------
아래 내용은 '카테고리' 출력코드
-----------------------------------------------
(카테고리별 출력이며, 포함된 게시물의갯수등은 정상인데...위내용처럼 링크가 문제..)
<!-- 분류 셀렉트 박스 시작 -->
<? $cnt_bo_1 = 6; // 한줄당 분류 갯수 ?>
<? if (!$wr_id) { ?>
<!-- 분류 셀렉트 박스 시작 -->
<?
$cnt = 1;
$sql = " SELECT bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$arr = explode("|", $row[bo_category_list]); // 구분자가 , 로 되어 있음
$str = "";
$str .= "<tr>";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i])) {
$sql1 = " SELECT count(*) as cCount FROM $write_table WHERE ca_name = '$arr[$i]' and wr_comment >= 0 ";
$row1 = sql_fetch($sql1);
$str .= "<td height=24><img src='{$board_skin_path}/img/ico_folder.gif' width='13' height='11'> <a class='cate' href='./board.php?bo_table=$bo_table&sca={$arr[$i]}&sod=desc&sop=&sst=wr_1'>$arr[$i] ($row1[cCount])</a></td>";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "</tr><tr>"; }
$cnt++;
}
$sql2 = " SELECT count(*) as cCount FROM $write_table WHERE wr_comment >= 0 ";
$row2 = sql_fetch($sql2);
$Total_Cat = $row2[cCount]
?>
<table width=100% cellspacing=1 cellpadding=4 border=0 style=table-layout:fixed>
<col width=100></col>
<col width=20></col>
<col width=></col>
<tr bgcolor=white>
<td width='' align='center'>
<img src='<?=$board_skin_path?>/img/ico_folder.gif' width='13' height='11'> <a class='cate' href='./board.php?bo_table=<?=$bo_table?>&sop=&sst=wr_1&sod=desc&sfl=&stx=&page=1'><b>전체목록</b></a>
</td>
<td nowrap> </td>
<td width='' style='word-break:break-all;'>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<span class="cate"><?=$str?></span>
</table>
</td>
</tr>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td height=1 class=line1 style=height:1px><img src=<?=$board_skin_path?>/img/tab.gif border=0 height=1></td></tr></table>
<!-- 분류 셀렉트 박스 끝 -->
<? } ?>
댓글 전체
보람찬님..그럼 스킨 만들고 있는거 잠깐 올려볼테니...한번 봐주시겠습니까??
다른건 문제가 없습니다...근데..카테고리에 걸린 링크가 문제입니다.
역순으로 출력도 안되고, 우선순위도 먹히지 않습니다.
만들기는 거의 다 만든건데..저 문제 땜에 날새겠습니다...(집사람은 벌써 삐져서...찬바람이 쌩쌩~ -_-;;)
다른건 문제가 없습니다...근데..카테고리에 걸린 링크가 문제입니다.
역순으로 출력도 안되고, 우선순위도 먹히지 않습니다.
만들기는 거의 다 만든건데..저 문제 땜에 날새겠습니다...(집사람은 벌써 삐져서...찬바람이 쌩쌩~ -_-;;)
스킨 어디있죠 ?...아니면 링크를 쪽지로 보내셔도 됩니다..
위 카테고리에서 전체 목록을 출력하는 부분인....
<a href='./board.php?bo_table=<?=$bo_table?>&sop=&sst=wr_1&sod=desc&sfl=&stx=&page=1'><b>전체목록</b></a>
이건 제대로 잘 먹힙니다...역순으로 정렬도 되고, 우선순위를 지정한대로도 되고, 페이지가 넘어가도 되고.....
근데 왜 카테고리에서만 안될까요....???>....................이게 가장 큰 문제입니다.
좀 도와주십시요
<a href='./board.php?bo_table=<?=$bo_table?>&sop=&sst=wr_1&sod=desc&sfl=&stx=&page=1'><b>전체목록</b></a>
이건 제대로 잘 먹힙니다...역순으로 정렬도 되고, 우선순위를 지정한대로도 되고, 페이지가 넘어가도 되고.....
근데 왜 카테고리에서만 안될까요....???>....................이게 가장 큰 문제입니다.
좀 도와주십시요
흠.......이상이 없는것 같습니다...올린 이미지 상에서 좀 의문점이 있지만서도 첫번째 이미지는 [금융포탈(털?)]인데
두번째 이미지는 [금융_부동산]인지....이미지를 원본대로 한것이 아닌지요??
위에서 카테고리만 들어갔다고 해서 정렬이 엉망이 되지는 않는데....당체 그 화면을 볼 수 가 없으니...
암튼 자체(?) 테스트 결과로는 이상이 없는것 같습니다..
두번째 이미지는 [금융_부동산]인지....이미지를 원본대로 한것이 아닌지요??
위에서 카테고리만 들어갔다고 해서 정렬이 엉망이 되지는 않는데....당체 그 화면을 볼 수 가 없으니...
암튼 자체(?) 테스트 결과로는 이상이 없는것 같습니다..
리플감사합니다..근데 말씀주신 팁은 위 상황에서는 먹히지를 않는군요..
그것보다는
if ($bo_table == 'tmd_01b02' || $bo_table == 'tmd_01b04') {
$sst = "wr_datetime";
$sod = "asc";
}else if (!$sst) {
$sst = "wr_num, wr_reply";
$sod = "";
}
이렇게 하면 역순으로는 나열이 되지만 '우선순위(wr_1) 의 값이 먹히지를 않게 됩니다.
이유는 링크에서 wr_1 을 sst=wr_1 ....이라고 쓰기때문에 생기는 문제입니다만, 이걸 잘 모르겠군요.
어차피 역순정렬은 테이블명에서 '&sod=desc' 이렇게 링크를 걸면 되기때문에 소스를 건드릴 필요가 없다고 판단을 했고
또 카테고리도 위코드를 가지고 돌리면서 링크를 어떤 방법으로 수정면 되지 않을까 하는 생각에
몇시간째 삽질을 했는데....안되는군요... (더욱이 아래쪽 페이징 연결은 스킨에서는 손을 못대겠군요)
역순정렬에 과 함께 wr_1 값에 대입한 우선순위방식과
카테고리클릭시 출력되는 페이지에서 다음페이지로 넘어갔을때의 페이지에서의 리스트출력 문제...
대충 이렇네요..
그리고... '&sfl=&stx=' 이건 무슨뜻인지도 사실 모르겠군요.
그것보다는
if ($bo_table == 'tmd_01b02' || $bo_table == 'tmd_01b04') {
$sst = "wr_datetime";
$sod = "asc";
}else if (!$sst) {
$sst = "wr_num, wr_reply";
$sod = "";
}
이렇게 하면 역순으로는 나열이 되지만 '우선순위(wr_1) 의 값이 먹히지를 않게 됩니다.
이유는 링크에서 wr_1 을 sst=wr_1 ....이라고 쓰기때문에 생기는 문제입니다만, 이걸 잘 모르겠군요.
어차피 역순정렬은 테이블명에서 '&sod=desc' 이렇게 링크를 걸면 되기때문에 소스를 건드릴 필요가 없다고 판단을 했고
또 카테고리도 위코드를 가지고 돌리면서 링크를 어떤 방법으로 수정면 되지 않을까 하는 생각에
몇시간째 삽질을 했는데....안되는군요... (더욱이 아래쪽 페이징 연결은 스킨에서는 손을 못대겠군요)
역순정렬에 과 함께 wr_1 값에 대입한 우선순위방식과
카테고리클릭시 출력되는 페이지에서 다음페이지로 넘어갔을때의 페이지에서의 리스트출력 문제...
대충 이렇네요..
그리고... '&sfl=&stx=' 이건 무슨뜻인지도 사실 모르겠군요.

bbs/list.php에서 정렬이 나오는데 그것이 우선되어서 그런것은 아닐까요?
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {
if (!$sst && $bo_table=='lll00') {
$sst = "wr_datetime";
$sod = "desc";
} elseif (!$sst ) {
$sst = "wr_num, wr_reply";
$sod = "";
}
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {
if (!$sst && $bo_table=='lll00') {
$sst = "wr_datetime";
$sod = "desc";
} elseif (!$sst ) {
$sst = "wr_num, wr_reply";
$sod = "";
}