전체검색 - 여분필드 입력분이 검색이 안됩니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
전체검색 - 여분필드 입력분이 검색이 안됩니다.

QA

전체검색 - 여분필드 입력분이 검색이 안됩니다.

본문

질문 그대로 첫페이지에 전체검색 부분이 있습니다.

 

그런데 문제는 

 

여분필드를 이용해서 삽입한 내용이 검색이 안됩니다.

 

[테스트]

https://dongtan2go.com/

첫페이지에서

검색어: 보쌈

 

검색결과를 보면 여분필드로 삽입한 부분은 검색이 안되고 글쓰기 부분으로 입력한 부분만 검색이 됩니다.

 

원래 여분필드는 검색이 안되나요?

이 질문에 댓글 쓰기 :

답변 4

/bbs/search.php 파일에 아래 부분을 수정해줘야 합니다.

            switch ($field[$k]) {

                case 'mb_id' :

                case 'wr_name' :

                    $str .= "$field[$k] = '$s[$i]'";

                    break;

                case 'wr_subject' :

                case 'wr_content' :

                case 'wr_1' :

                    if (preg_match("/[a-zA-Z]/", $search_str))

                        $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";

                    else

                        $str .= "INSTR({$field[$k]}, '{$search_str}')";

                    break;

                default :

                    $str .= "1=0"; // 항상 거짓

                    break;

            }

모두 답변 감사합니다.

하라는대로 다 입력 한것 같은데 여전히 여분필드는 검색에서 안나오네요.

 

index.php 파일


<div class="hd_sch_wr">
            <fieldset id="hd_sch" >
                <legend>사이트 내 전체검색</legend>
                <form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
                <input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5">
                <input type="hidden" name="sop" value="and">
                <label for="sch_stx" class="sound_only">검색어 필수</label>
                <input type="text" name="stx" id="sch_stx" maxlength="20" placeholder="검색어를 입력해주세요">
                <button type="submit" id="sch_submit" value="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
                </form>
                <script>
                function fsearchbox_submit(f)
                {
                    if (f.stx.value.length < 2) {
                        alert("검색어는 두글자 이상 입력하십시오.");
                        f.stx.select();
                        f.stx.focus();
                        return false;
                    }
                    // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
                    var cnt = 0;
                    for (var i=0; i<f.stx.value.length; i++) {
                        if (f.stx.value.charAt(i) == ' ')
                            cnt++;
                    }
                    if (cnt > 1) {
                        alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
                        f.stx.select();
                        f.stx.focus();
                        return false;
                    }
                    return true;
                }
                </script>
            </fieldset>
                
            
        </div>

 

search.php 파일


// 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
        for ($k=0; $k<count($field); $k++) {
            $str .= $op2;
            switch ($field[$k]) {
                case 'mb_id' :
                case 'wr_name' :
                    $str .= "$field[$k] = '$s[$i]'";
                    break;
                case 'wr_subject' :
                case 'wr_content' :
                case 'wr_1' : //wr_1 추가함 20200504
                case 'wr_2' : //wr_2 추가함 20200504
                case 'wr_3' : //wr_3 추가함 20200504
                case 'wr_4' : //wr_4 추가함 20200504
                case 'wr_5' : //wr_5 추가함 20200504
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
                    else
                        $str .= "INSTR({$field[$k]}, '{$search_str}')";
                    break;
                default :
                    $str .= "1=0"; // 항상 거짓
                    break;
            }

 

833227679_1588561846.0123.jpg

그대로 하시면 검색이 될텐데요??
혹시 검색에서 여분필드 내용이 안나온다고 하시는 거면..

bbs\search.php 파일에서..
$list[$idx][$i]['wr_1'] = $row['wr_1']; 추가해주고..

skin\search\basic\search.skin.php 파일에..
<?php echo $list[$idx][$i][wr_1'] ?> 등도 추가해줘야 합니다.

안녕하세요. 의견 감사합니다.

dongtan2go.com 첫페이지에 보면 전체검색을 할수 있게 넣었습니다.
- 검색을 하면 전체검색은 잘 됩니다.
- 하지만 여분필드로 추가 해서 넣은 부분은 검색을 못하는 것입니다.


알려주신 소스는 어디에 넣어야 할까요?

좋은 하루 되세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 954
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT