검색 조건이 잘 걸리지 않아 질문드립니다 ㅠㅠ
본문
게시판에서 검색 조건을 날짜와 작성자 두가지 조건을 걸려고 합니다.
<조건>
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
제일 쉬운 방법이
$row = sql_fetch($sql);
여기 위에다가
echo $sql; 찍고 확인해보세요
감사합니다!
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}%' ";
}
답변을 작성하시기 전에 로그인 해주세요.