게시판 검색 띄어쓰기 무시 질문드립니다!
본문
안녕하세요.
게시글 제목이 그누 보드 라고 띄어쓰기가 있으면,
게시판 검색을 그누보드, 누보 등등 이라고 해도 게시글이 검색이 되도록 띄어쓰기를 제거하려고 합니다.
질문 전에 서칭을 했었는데 대부분 "전체검색"에 관한 질문이네요...
게시판 검색이니까 bbs/list.php에서 검색 쿼리를 건드려줘야 할 것 같은데.. 잘 모르겠네요..
bbs/list.php
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//검색인지 아닌지 구분하는 변수 초기화
$is_search_bbs = false;
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
/*
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = sql_num_rows($result);
*/
} else {
$sql_search = "";
$total_count = $board['bo_count_write'];
}
!-->
답변 2
common.lib.php 파일에서 get_sql_search 이 함수를 찾아서
switch ($field[$k]) { 위에 아래처럼 수정해보세요
// 필드값에 a-z A-Z 0-9 _ , | 이외의 값이 있다면 검색필드를 wr_subject 로 설정한다.
$field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? strtolower($field[$k]) : "wr_subject";
if($field[$k] == "wr_subject") {
$field[$k] = " REPLACE(wr_subject, ' ', '') ";
}
$str .= $op2;
switch ($field[$k]) {
$stx = trim($stx);
다음줄에
$stx = preg_replace("/\s+/","",$stx);
추가하면 될거 같아요
답변을 작성하시기 전에 로그인 해주세요.