게시판 검색 형식 추가 방법즘.[1만포인트] 정보
게시판 검색 형식 추가 방법즘.[1만포인트]-
Terrorboys 홈페이지 자기소개 아이디로 검색 회원게시물
- 1,745

본문
기존방식
&sfl=검색필드&stx=검색문장
이렇게 되어있는데요.
&no=wr_4를 추가해서
&sfl=검색필드&stx=검색문장&no=wr_4
이렇게 검색되게하고
검색필드에 검색문장이 포함되고 wr_4가 '' 와 같은것만 출력하려고 합니다.
bbs/list.php , lib/common.lib.php 어디에도 삽입할곳이 안보이네요.
어떤 파일에 어떤식으로 추가 하면될까요?
&sfl=검색필드&stx=검색문장
이렇게 되어있는데요.
&no=wr_4를 추가해서
&sfl=검색필드&stx=검색문장&no=wr_4
이렇게 검색되게하고
검색필드에 검색문장이 포함되고 wr_4가 '' 와 같은것만 출력하려고 합니다.
bbs/list.php , lib/common.lib.php 어디에도 삽입할곳이 안보이네요.
어떤 파일에 어떤식으로 추가 하면될까요?
댓글 전체
저의 경우에는 아래와 같이 bbs/list.php 에 조건을 추가하고 쿼리문에 추가하는 방식으로 여분필드를
검사합니다^^
###bbs 의 list.php 에서 아래와 같이 조건을 준 후, 쿼리문에 추가함
############################################################################################
$mr_where = ""; //mrsin 조건문
if($mr_search) {
$mr_where .= " and wr_1 = '$_GET[wr_1]' "; //wr_1 필드와 wr_2 필드의 조건을 검색한다
### 대부분의 select 쿼리에 $mr_where 의 변수를 where 절 아래 추가한다
}
############################################################################################
$bo_table 조건을 주어도 되고 안줘도 관계는 없으나, 주는 것이 좋겠지요?
감사합니다^^
검사합니다^^
###bbs 의 list.php 에서 아래와 같이 조건을 준 후, 쿼리문에 추가함
############################################################################################
$mr_where = ""; //mrsin 조건문
if($mr_search) {
$mr_where .= " and wr_1 = '$_GET[wr_1]' "; //wr_1 필드와 wr_2 필드의 조건을 검색한다
### 대부분의 select 쿼리에 $mr_where 의 변수를 where 절 아래 추가한다
}
############################################################################################
$bo_table 조건을 주어도 되고 안줘도 관계는 없으나, 주는 것이 좋겠지요?
감사합니다^^
아 ㅡㅡ;; 이게 질문에 대한 답변이 맞나요 ㅡㅡ;;;; 왠지 써놓고 보니 또 엉뚱한 답변을 한듯 ㅡㅡ;;
아니라면 죄송합니다~~~ㅜㅜ
아니라면 죄송합니다~~~ㅜㅜ
저의 경우
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table ";
$row = sql_fetch($sql);
$min_spt = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
if($no){
$null = "and ".$no." = null";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search $null ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
이런식으로 소스에 추가 해보았는데 작동이 안되서요^^
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table ";
$row = sql_fetch($sql);
$min_spt = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
if($no){
$null = "and ".$no." = null";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search $null ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
이런식으로 소스에 추가 해보았는데 작동이 안되서요^^
아~ 저의 경우에는 소스를 건드리지 않고 skin 에서 페이징 방식을 바꿔 버립니다 ~_~
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&wr_1=$wr_1&wr_2=$wr=2&page=");
잠깐 ㅡㅡ;; 이게 맞나 ㅡㅡ;;; 또 딴소리 하는 거 같네요 ㅠㅠㅠㅠㅠㅠ
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&wr_1=$wr_1&wr_2=$wr=2&page=");
잠깐 ㅡㅡ;; 이게 맞나 ㅡㅡ;;; 또 딴소리 하는 거 같네요 ㅠㅠㅠㅠㅠㅠ
MySQL의 경우 is 를 붙여야하는걸껍니다^^
and 필드명 is NULL (자료가없을경우)
and 필드명 is not NULL (없는경우가 아닌경우 - 이경우는 데이터가 있거나 ''으로 임의공백준것까지를 말합니다)
and 필드명 is NULL (자료가없을경우)
and 필드명 is not NULL (없는경우가 아닌경우 - 이경우는 데이터가 있거나 ''으로 임의공백준것까지를 말합니다)
bo_table=kira&sfl=wr_3&stx=1&no=wr_4
bbs/list.php
줄수 30아래 추가/수정
if($no){
$null = "and ".$no." is null";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함) // 수정
$sql = " select distinct wr_parent from $write_table where $sql_search $null";
이렇게 해도 안되는데 다른 부분일가요?
wr_4가 null아닌거와 맞는거 전부 뿌려지네요 ㅡㅡ;;
bbs/list.php
줄수 30아래 추가/수정
if($no){
$null = "and ".$no." is null";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함) // 수정
$sql = " select distinct wr_parent from $write_table where $sql_search $null";
이렇게 해도 안되는데 다른 부분일가요?
wr_4가 null아닌거와 맞는거 전부 뿌려지네요 ㅡㅡ;;
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if($no){
$null = "where ".$no." is NULL";
}
// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
$is_category = true;
$category_location = "./board.php?bo_table=$bo_table&sca=";
$category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}
$sop = strtolower($sop);
if ($sop != "and" && $sop != "or")
$sop = "and";
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table $null";
이렇게 위치 변경하니 되네요 ㅡㅡ;;;
if($no){
$null = "where ".$no." is NULL";
}
// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
$is_category = true;
$category_location = "./board.php?bo_table=$bo_table&sca=";
$category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}
$sop = strtolower($sop);
if ($sop != "and" && $sop != "or")
$sop = "and";
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table $null";
이렇게 위치 변경하니 되네요 ㅡㅡ;;;
위치 잘못해서 헛고생 중이 였다니 ㅡㅡ;;;
울고 싶어라~
울고 싶어라~
bbs/list.php
30줄 아래 추가 수정으로 대체 됬습니다.
// 제외 필드 추가 2011-01-13
if($no){
$null .= "and {$no} = ''";
}
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') $null"; // $null 추가 2011-01-13
is null일경우 아무것도 안뜨더라구요.
소스 따라 가보니
업데이트에서 wr_4가 ''로 되어 있더라구요.
업데이트시 null이라고 안주면 위처럼 써야 하네요.
30줄 아래 추가 수정으로 대체 됬습니다.
// 제외 필드 추가 2011-01-13
if($no){
$null .= "and {$no} = ''";
}
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') $null"; // $null 추가 2011-01-13
is null일경우 아무것도 안뜨더라구요.
소스 따라 가보니
업데이트에서 wr_4가 ''로 되어 있더라구요.
업데이트시 null이라고 안주면 위처럼 써야 하네요.