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

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

· 13년 전 · 1487 · 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개쯤 될거같네요.
이럼 인덱스를 추가하는게 났겠네요. 답변 감사합니다.

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440