sfl=wr_1&stx=공백
본문
공백만 검색해서 값을 가져오고싶은데 가능할까요 .. ?
sfl=wr_1&stx=
와 같이 검색해보면 전체 데이터를 가져오더라구여 ㅜ
코드를 수정해야겠죠..?
도움주셔서 감사합니다.
답변 2
공백을 검색한다구요?
아버지 가 방에 들어 가신다<----이 문장에서 공백을 어떻게 검색하겠다는 발상인가요?
어떤 처리를 하고 싶은 것인지 용도를 이야기 해보세요
하여튼 그누보드에 그런 기능은 들어있지않습니다
공백을 전달하는 것이 안되니 stx=BLANK 이런식으로 다른 문자로 전달하고
검색코드에서 다음처럼 해주면 되겠습니다
if($stx=='BLANK') $sql_search="$sfl LIKE '% %' ";
or
if($stx=='BLANK') $sql_search="INSTR($sfl, ' ')";
아마도 공백이 아니라 데이터가 없는 걸 검색하고 싶으시다는것이겠죠?
공백을 검색한다는건 여지껏 듣도 보도 못한 내용이라;;
그누보드의 기본 검색 연산자는 '=' 로만 되어있어서 not 은 불가능합니다.
코어쪽을 조금 손보셔야 합니다.
/bbs/list.php 에 보시면
if ($is_search_bbs) { $sql = " select distinct wr_parent from {$write_table} where....
이런식으로 검색에 대한 쿼리문이 있는데
여기에
$adp_custom_sql = " wr_1 = '' and ";
if ($is_search_bbs) { $sql = " select distinct wr_parent from {$write_table} where {$adp_custom_sql}...
이런식으로 wr_1 컬럼이 빈것만 가져오라는 추가 조건문을 붙일 수 있습니다.
다만 이렇게 되면 리스트는 wr_1 값이 없는것만 가져오지만 총 게시물수와 아래 페이징이 맞지 않습니다.
해당 부분도 수정해줘야 하는데
80 라인쯤 보시면
$total_count = $board['bo_count_write'];
이렇게 총 게시물 수를 g5_write_해당테이블 이 아닌 누적 기록된 $board 배열에서 가져옵니다.
(새롭게 계산이 아닌 게시글 쓸때마다 +1 씩 카운트)
그러면 커스텀 검색 변수가 할당되어있을때
if(isset($adp_custom_sql) && $adp_custom_sql){ // 커스텀 검색을 쓴다면 총 글수를 별도 쿼리
$adp_sql = " SELECT COUNT(wr_id) AS `cnt` FROM {$write_table} WHERE {$adp_custom_sql} wr_is_comment = '0'";
$adp_row = sql_fetch($adp_sql);
$total_count = $adp_row['cnt'];
} else {
$adp_custom_sql = '';
$total_count = $board['bo_count_write'];
}
이렇게 분기하여 총 게시물을 카운트 해줘야 합니다.
그리고 매번 커스텀 쿼리를 list.php 에 적을수 없으니
list.php 상단에 적당한곳에
if (file_exists($board_skin_path.'/adp_custom_sql.php')) { @include_once($board_skin_path.'/adp_custom_sql.php'); } else { $adp_custom_sql = ''; }
인클루드 문 하나 넣어주고
게시판 스킨과 동일한 위치에 adp_custom_sql.php 파일하나 생성한뒤
$adp_custom_sql = "wr_1 = '' and ";
이런식으로 추가 쿼리문을 넣어주면됩니다.
상시가 아니라면 별도 if 등으로 분기하시구요.
이해가 안되신다면 의뢰로 가시면 10만원 언더로 해결될것 같습니다.
좋은결과 있으시길 바랄께요~
!-->