특정 게시판에서 다중범위(구간) 검색 질문드려요~ (여분필드)
본문
안녕하세요 고수님들~~~^^*
좌충우돌 만년 세내기 입니다~~
현재 아미나 빌더 사용중입니다.
궁금한것이 있는데 아직도 해결을 못하고 있습니다
예를 들어 질문답변 게시판에 들어가서(여러 글들이 저장되어있을때) list.skin.php 에서
wr_1 에 숫자가 하나만 들어가 있는것이 아니고
예를들어 wr_1에 5,3,7,4,2,8,1,5 이렇게 들어가 있다고 하면
list.skin.php 에서 wr_1에 저장되어있는 범위내에 있는 숫자 (ex : 1~5까지, 또는 2~4까지, 등,등,등... ) 해당되는 숫자가 들어가있는 게시판 글들은 list.skin.php 에서 다~ 보여주게 할려면 어떻게 적용을 해야 하는가요?
검색 부분에다가 추가해서 사용을 해야 할 것 같은데...
적용되어 있는 스킨이나, 링크라도 가르쳐 주시거는 어떻게 넣어서 적용해야할지 가르쳐 주시면
너무 너무 감사를 드립니다~~
아미나 빌더에 보니까 이런 팁 부분도 있던데
게시판에 적용해 보려고 해도 잘~ 안되네요~~~~.ㅜ
다중검색 3편 | 마이너스 포함 숫자범위 검색하기
마이너스가 포함된 숫자범위 검색입니다.
기존 숫자범위 검색은 마이너스를 인식하지 못하였습니다.
사용법은 기존과 같습니다.
board.head.skin.php 상단밑에 추가합니다.
if (isset($wr_1_1) && $wr_1_1) {
$wr_1_1 = get_search_string(trim($wr_1_1));
if ($wr_1_1) {
$sql_apms_where .= " and wr_1 >= '{$wr_1_1}' ";
$qstr .= '&wr_1_1=' . urlencode($wr_1_1);
}
}
if (isset($wr_1_2) && $wr_1_2) {
$wr_1_2 = get_search_string(trim($wr_1_2));
if ($wr_1_2) {
$sql_apms_where .= " and wr_1 <= '{$wr_1_2}' ";
$qstr .= '&wr_1_2=' . urlencode($wr_1_2);
}
}
// 분류 또는 검색일 때는 통과
if ($sca || $stx) {
;
} else if($sql_apms_where) {
//글수 재카운팅
$row = sql_fetch(" select count(*) as cnt from $write_table where wr_is_comment = 0 $sql_apms_where");
$board['bo_count_write'] = $row['cnt'];
}
게시판에서 어떻게 적용을 해야 여분필드 내용을 구간 검색을 할 수 있을찌 아직도 해결못하고 있습니다.
고수님들 좀~ 가르쳐 주세요~~
감사합니다.. 꾸벅~
답변 1
질문 내용을 보니
wr_1 이라는 필드에
number 의 순서가 뒤죽박죽 및 중복인 (number + comma) 의 string 값이 저장되어 있고
그 string 에서 범위 검색을 하려 하시는것 같은데
예를들어 범위가 3~7 이라면 범위 만큼 계산해서 3|4|5|6|7 같은 string 만드셔서
SELECT 필드 FROM 테이블 WHERE wr_1 REGEXP ',?(3|4|5|6|7),?';
정도로 하시면 될겁니다.
그런데 중요한 것은 데이터가 많아지면
이런 형태의 검색은 성능보장이 어렵습니다.
필드는 오직 하나의 number 값만 갖게 하고
필드에 인덱스를 걸어
검색시 실제 DB 내부적으로 인덱스를 타게해서 성능을 보장해줘야 합니다.