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

list.php에서 쿼리문 확인좀 부탁드립니다.

· 13년 전 · 1488 · 2
list.php
일부를 건드려서
도메인/bbs/board.php?bo_table=테이블명&lvl=값|값&cls=1|2|3|4|5
위방식으로 다중 검색? 비슷하게 사용할수 있도록 수정해 본겁니다..

if ($sca || $stx)
{
if ($lvl){
$mm = explode("|", $lvl);
$lvlrange = "(wr_2 between '$mm[0]' and '$mm[1]') and ";
}
if ($cls){
$cl = explode("|", $cls);

for ($k = 0; $k < count($cl); $k ++){
if (count($cl)==1 || count($cl)-1==$k ){
$cla.= " wr_3='$cl[$k]'";
}else{
$cla.= " wr_3='$cl[$k]' or";
}
$classrange = "(".$cla.") and ";
}
}


$sql = " select distinct wr_parent from $write_table where $lvlrange $classrange $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}

lvl은 = wr_2 값의 범위로 걸러져서 추가되게,
cls는 = wr_3의 값을 나눠 각각 "값 or"로 추가되게 했습니다.
사용하려는 용도는 여유필드 1개의 값을 범위로 검색하고. 3개의 여유필드로 필터 효과를 내고자 합니다..

그래서... 2개를 더 추가하고자 하는데요... 우려 되는 부분이 or이나 and로 쿼리를 길게 해서 사용해도..
서버에 큰 무리나, 문제가 없을지 걱정이 되서... 질문 올립니다.

ps - 검색 기능이 자주 활용될 게시판입니다.. 염두하셔서 댓글점 부탁드려요 ^^
그리고, 새해복 많이들 받으세요 (__)

댓글 작성

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

로그인하기

댓글 2개

if ($sca || $stx) 이 실행 될 조건이 있어야 검색구문을 생성해 낼 수 있습니다
if ($sca || $stx || $lvl ) 이런식이 되어야겠죠 이곳 뿐만 아니라 아래쪽에도 몇군데
이렇게 해주어야 합니다

여분 필드는 인덱스가 생성되어 있지않아서 검색에 사용하려면 인덱스를 추가하는 것이 좋습니다
게시물수가 몇만개 이상 쌓이면 검색속도에 문제가 생긴다고 봐야죠
게시물수가 크게 많아질 성질이 아니면 그냥 해도 됩니다
13년 전
그럼 위 select 자체는 큰 문제는 없는 거군요.. 게시글 자체는 약 8000개쯤 될거같네요.
이럼 인덱스를 추가하는게 났겠네요. 답변 감사합니다.

게시글 목록

번호 제목
284438
284437
284435
284430
284420
284417
284409
284401
284399
284397
284380
284378
284371
284370
284366
284364
284360
284357
284355
284354