검색 조건이 잘 걸리지 않아 질문드립니다 ㅠㅠ

검색 조건이 잘 걸리지 않아 질문드립니다 ㅠㅠ

QA

검색 조건이 잘 걸리지 않아 질문드립니다 ㅠㅠ

답변 2

본문

게시판에서 검색 조건을 날짜와 작성자 두가지 조건을 걸려고 합니다.

<조건>

1. 날짜만 검색했을 때 값 출력

2. 작성자만 검색했을 때 값 출력

3. 둘다 검색했을 때 값 출력

 

list.php에서 쿼리문을 추가하여 값을 받으려고 하는데

제가 검색조건을 걸어놓은 곳은 '시설관리인 경우'라고 적혀있는 곳입니다.


$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
    $sop = 'and';
 
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//검색인지 아닌지 구분하는 변수 초기화
$is_search_bbs = false;
   
if ($sca || $stx || $sfl === '0') {     //검색이면
    $is_search_bbs = true;      //검색구분변수 true 지정
   
    if($bo_table == "purchase_stock") { //약품구매게시판인경우
        $sql_search=" wr_1 between '{$stx}' and '{$stx2}' ";
        if ($stx3) {
            $sql_search += " and wr_subject like '%{$stx3}%' ";
        }
    }else if($bo_table == "facility_manage") { //시설관리인경우
            $sql_search=" wr_datetime between (wr_datetime LIKE '%{$stx}') and (wr_datetime LIKE '%{$stx2}') or wr_name LIKE '{$stx3}%' ";
    }
 
    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
    $row = sql_fetch($sql);
    $min_spt = (int)$row['min_wr_num'];
    if (!$spt) $spt = $min_spt;
 
    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
 
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];

 

mysql 워크벤치에서 검색을 했을 때는 원하는대로 값이 잘 나오는데 페이지에서 검색을 하려고 하면 

작성자만 검색하려고 했을 때 최고관리자까지 같이 검색이 됩니다...

그리고 여기서 날짜 값을 추가로 조건 주면 원하는 조건 출력이 됩니다.

 

도대체 문제가 무엇인지 모르겠어 이렇게 질문 남깁니다... 제발 도와주세요...

이 질문에 댓글 쓰기 :

답변 2

감사합니다!

echo $stx, $sfl, $sca 다 찍어보았고 제가 추가로 설정한 변수 stx2, stx3값이 들어오지 않는 걸 알았습니다.

 

조건에 stx2, stx3를 추가하니 값이 잘 됩니다. 감사합니다!

 


if ($sca || $stx || $sfl || $stx2 || $stx3 == '0') {     //검색이면
 
    $is_search_bbs = true;      //검색구분변수 true 지정
   
    if($bo_table == "purchase_stock") { //약품구매게시판인경우
        $sql_search=" wr_1 between '{$stx}' and '{$stx2}' ";
        if ($stx3) {
            $sql_search += " and wr_subject like '%{$stx3}%' ";
        }
    }else if($bo_table == "purchase_feed"){//사료구매게시판인경우
        $sql_search=" wr_2 between '{$stx}' and '{$stx2}' and wr_subject like '%{$stx3}%' ";
    }else if($bo_table == "basic_information") { //CMS일반정보인경우
            $sql_search=" wr_datetime between '{$stx}' and date_add('{$stx2}',interval 1 day) and wr_name like '%{$stx3}%' ";
    }else if($bo_table == "facility_manage") { //CMS시설관리인경우
            $sql_search="  wr_datetime between (wr_datetime LIKE '%{$stx}') and (wr_datetime LIKE '%{$stx2}') OR wr_name LIKE '{$stx3}%'   ";
    }else if($bo_table == "growth_environment") { //CMS성육환경인경우
            $sql_search=" wr_datetime between '{$stx}' and date_add('{$stx2}',interval 1 day) and wr_name like '%{$stx3}%' ";
    }else if($bo_table == "growth_manage") { //CMS성육관리인경우
            $sql_search=" wr_datetime between '{$stx}' and date_add('{$stx2}',interval 1 day) and wr_name like '%{$stx3}%' ";
    }
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로