n

그누야 님의 다중 카테고리 사용시 게시판 검색 문제...

· 19년 전 · 1653
img1.jpg
img2.jpg
그누야님의 다중카테고리 스킨을 수정하여 사용하고 있습니다.
다중 카테고리 사용시 common.lib 의 함수 가운데 쿼리 부분 때문인지
검색 결과가 나타나지 않습니다. 다중카테고리 적용 스킨과 일반 스킨 사용시 모두 검색이 되지 않았는데.. 일반 게시판 사용시 검색이 되도록 수정은 해봤습니다만..
다중 카테고리 사용 스킨부분은 검색이 제대로 안되는것 같습니다.
아래는 해당 함수의 코드 부분입니다..
----------------------------------------------------------------------------------------
// 검색 구문을 얻는다.
//function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator=false)
function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and')
{
       global $g4, $write_table, $bo_table;
     $str = "";
        $sql = " select bo_10 from $g4[board_table] where bo_table='$bo_table'";
        $row = sql_fetch($sql);
    if ($search_ca_name)
//        $sql = " select ca_id from $write_table";
// 여기 추가 했음 2006-03-02
        if(substr($row[bo_10],0,4)=="MCAT"){
   
   $str = " ca_id = '$search_ca_name'  "; 
  
  } else {
   
   $str = " ca_name = '$search_ca_name' ";
  
  }
    $search_text = trim($search_text);
    if (!$search_text)
        return $str;
    if ($str)
        $str .= " and ";
    // 쿼리의 속도를 높이기 위하여 ( ) 는 최소화 한다.
    $op1 = "";
    // 검색어를 구분자로 나눈다. 여기서는 공백
    $s = array();
    $s = explode(" ", trim($search_text));
    // 검색필드를 구분자로 나눈다. 여기서는 +
    $tmp = array();
    $tmp = explode(",", trim($search_field));
    $field = explode("||", $tmp[0]);
    $not_comment = $tmp[1];
    $str .= "(";
    for ($i=0; $i<count($s); $i++)
    {
        // 검색어
        $search_str = $s[$i];
        // 인기검색어
        $sql = " insert into $g4[popular_table]
                    set pp_word = '$search_str',
                        pp_date = '$g4[time_ymd]',
                        pp_ip = '$_SERVER[REMOTE_ADDR]' ";
        sql_query($sql, FALSE);
        $str .= $op1;
        $str .= "(";
        $op2 = "";
        for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
            $str .= $op2;
            switch ($field[$k]) {
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";
                    break;
                case "wr_hit" :
                case "wr_good" :
                case "wr_nogood" :
                    $str .= " $field[$k] >= '$s[$i]' ";
                    break;
                // 번호는 해당 검색어에 -1 을 곱함
                case "wr_num" :
                    $str .= "$field[$k] = ".((-1)*$s[$i]);
                    break;
                // LIKE 보다 INSTR 속도가 빠름
                default :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
                    else
                        $str .= "INSTR($field[$k], '$search_str')";
                    break;
            }
            $op2 = " or ";
        }
        $str .= ")";
        //$op1 = ($search_operator) ? ' and ' : ' or ';
        $op1 = " $search_operator ";
    }
    $str .= " ) ";
    if ($not_comment)
        $str .= " and wr_is_comment = '0' ";
    return $str;
}
---------------------------------------------------------------------------------------
아래는 bbs/list.php 의 리스트 및 검색 부분 소스코드 입니다.
---------------------------------------------------------------------------------------
if (!$sst)
{
    $sst  = "wr_num, wr_reply";
    $sod = "";
}
$sql_order = " order by $sst $sod ";
 
$board_c_sql = " select * from g4_board ";
$board_c_query =  sql_query($board_c_sql);
$board_c_array = mysql_fetch_array($board_c_query);
$bo_10 = $board_c_array[bo_10];
$bo_10 = substr( $bo_10 , 0, 4 );

if ($sca || $stx)
{
    $sql = " select distinct * from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";

}
else {
 $sql = " select * from $write_table where wr_is_comment = 0 $sql_order limit $from_record, $board[bo_page_rows]";
}
 echo $str."<br>";

첨부파일

img1.jpg (224.4 KB)
0회 2006-06-12 08:49
img2.jpg (149.2 KB)
0회 2006-06-12 08:49
|
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
19년 전 조회 1,729
19년 전 조회 1,969
19년 전 조회 1,232
19년 전 조회 1,059
피터팬
19년 전 조회 1,601
19년 전 조회 1,292
19년 전 조회 1,649
19년 전 조회 1,590
19년 전 조회 1,557
19년 전 조회 1,654
19년 전 조회 1,487
19년 전 조회 1,669
19년 전 조회 1,731
19년 전 조회 1,596
19년 전 조회 1,424
19년 전 조회 2,467
19년 전 조회 1,554
19년 전 조회 1.1만
19년 전 조회 1,556
19년 전 조회 1,236