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

추가로 만든 필드(wr_6)을 검색될 수 있게 하는 방법 문의 채택완료

곰돌e 1년 전 조회 1,307

고수님들의 조언을 구합니다.

 

wr_6을 추가 필드로 사용하면서 데이터를 Text형태로 입력하고 있습니다.

운영을 하려고 하다 보니 wr_6의 데이터가 검색이 되었으면 해서

메인의 검색 부분과 skin으로 설정되는 search 부분에 ||wr_6을 추가해줬는데

검색이 안되네요. ㅠ_ㅠ

 

제가 아는 방법이 아닌 다른 방법이 있는 건가요?

아니면 데이터를 입력받는 방법을 바꿔야 하는건가요?

 

많은 지도 편달 부탁드립니다.

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

답변 6개

채택된 답변
+20 포인트
1년 전

'||wr_6' 추가가 아닌 'wr_6' 추가입니다. 

 

※ https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=43 
에서 '2. 게시판 목록 하단에 있는 검색에 추가하는 방법'

로그인 후 평가할 수 있습니다

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

1년 전

하아.. 여분필드 검색이 이렇게 어려운거였나요...

쩝.. 알려주신대로 했는데.. 안되네요.. 

로그인 후 평가할 수 있습니다

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

1년 전

마르스컴퍼니님이 알려주신대로 링크 내용 보고 따라해봤는데요.

제가 뭔가 잘못 추가했나봐요.

 

skin/search/basic/search.skin.php

<select name="sfl" id="sfl">
        <option value="wr_subject||wr_content"<?php echo get_selected($sfl, "wr_subject||wr_6") ?>>제목+태그</option>
        <option value="wr_subject"<?php echo get_selected($sfl, "wr_subject") ?>>제목</option>
        <option value="wr_5"<?php echo get_selected($_GET['sfl'], "wr_5") ?>>출연진</option>
        <option value="wr_6"<?php echo get_selected($_GET['sfl'], "wr_6") ?>>태그</option>
        <option value="mb_id"<?php echo get_selected($sfl, "mb_id") ?>>회원아이디</option>
        <option value="wr_name"<?php echo get_selected($sfl, "wr_name") ?>>이름</option>
    </select>

 

head.php

<input type="hidden" name="sfl" value="wr_subject||wr_content||wr_6">

 

bbs/search.php

case 'wr_name' ; 밑에 추가했습니다.

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_5' :
                            case 'wr_6' :
                                if (preg_match("/[a-zA-Z]/", $search_str))
                                    $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
                                else
                                    $str .= "INSTR({$field[$k]}, '{$search_str}')";
                                break;
                    $str .= "$field[$k] = '$s[$i]'";
                    break;

 

이후 case문은 모두 유지했구요.

제대로 잘 안되는게 제가 뭔가 잘못한듯 한데.. 봐주셨음 합니다.

여분필드는 아예 검색을 못하네요..ㅠ_ㅠ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

마르스컴퍼니
1년 전
<option value="wr_subject||wr_content"<?php echo get_selected($sfl, "wr_subject||wr_6") ?>>제목+태그</option>

<option value="wr_subject||wr_6"<?php echo get_selected($sfl, "wr_subject||wr_6") ?>>제목+태그</option>

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

1년 전

어떻게 해보았는데 안되는 것인지 해본 코드를 알려주면 답변이 쉬워지는데... .

sfl에 wr_6 추가하면 됩니다

 

안되면  수정한 검색폼과 스킨 상단에 echo $sql;

넣어서 나온 쿼리문 올려보세요

 

로그인 후 평가할 수 있습니다

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

1년 전

/bbs/list.php 쿼리 로그를 찍어가면서 디버깅을 하나씩 해보셔야 할거 같아요~

로그인 후 평가할 수 있습니다

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

1년 전

안녕하세요.

아래의 내용을 참고해 보세요~

 

https://sir.kr/qa/446931

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

곰돌e
1년 전
따라 해봤는데.. 안되네요.. ㅠ_ㅠ..

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

답변을 작성하려면 로그인이 필요합니다.

로그인