기간검색

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
기간검색

QA

기간검색

본문

형님들 안녕하세요.

이제 다들 퇴근하셨겠습니다 ㅜㅜ

 

기간검색기능을 만들려고 해서요..

여기저기 스킨소스 떠다가 다중검색과 기간검색소스 조합해서

어찌어찌 만들었습니다..

헌대 다중검색이랑 기간검색이랑 따로노는데 이유는

 

$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
    $sop = 'and';

// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx || count($arr_search) > 0) {
    

        $se_arr = array();
        $se_arr = $arr_search;

        $sql_search = get_sql_search3($sca, $sfl, $stx, $sop, $se_arr);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $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'];

    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */

///////기간별검색////////////////t_start=20&t_end=25&x=25&y=9
else if ($t_start || $t_end) 
{
    $sql_search = "wr_1 >= '$t_start' && wr_1 <= '$t_end'";

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $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']})) ";

    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
}

이녀석들 때문인것 같네요.

 

else if 가 아니고 어차피 똑같은 소스면 if 로 묶어서 사용가능할꺼같은데

혹시 간단하게 도움 주실 고수님들 있으신지요..

저거 하나로합치면 다중검색에 기간검색까지도 가능할텐데 ㅜoㅜ 

도움 부탁드립니다.

 

 

맛저녁하세요

꾸벅꾸벅

이 질문에 댓글 쓰기 :

답변 1

1) else if ($t_start || $t_end)  { } 부분 삭제

 

2) 기간별 검색 부분을 위 if ()문 내로 이동/결합

 

$sql_search = get_sql_search3($sca, $sfl, $stx, $sop, $se_arr);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)    

->

$sql_search = get_sql_search3($sca, $sfl, $stx, $sop, $se_arr);

if ($t_start || $t_end) 
    $sql_search .= " and wr_1 >= '$t_start' && wr_1 <= '$t_end'";
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)    

$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
    $sop = 'and';

// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx || count($arr_search) > 0) {
   

$se_arr = array();
$se_arr = $arr_search;

$sql_search = get_sql_search3($sca, $sfl, $stx, $sop, $se_arr);
if ($t_start || $t_end)
    $sql_search .= " and wr_1 >= '$t_start' && wr_1 <= '$t_end'";


    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $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'];

   

}

이렇게 하면 될까요?

if ($sca || $stx || count($arr_search) > 0) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
}

////////////기간별검색/////////////////
else if ($t_start || $t_end){
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
 
  }
///////////////////////////////




 // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
        if ($sca || $stx || count($arr_search) > 0)
            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_parent']}' ");

//////////기간별검색////////////////////
if ($t_start || $t_end)
$row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");

////////////////////////////////////////


이 두부분은 어떻게 해야할까요?ㅜㅜ

if ($sca || $stx || $t_start || $t_end || count($arr_search) > 0) {
 

$se_arr = array();
$se_arr = $arr_search;

if ($sca || $stx || count($arr_search) > 0)
  $sql_search = get_sql_search3($sca, $sfl, $stx, $sop, $se_arr);

if ($t_start || $t_end) {
  if ($sql_search)
    $sql_search .= " and wr_1 >= '$t_start' && wr_1 <= '$t_end'";
  else
    $sql_search = " wr_1 >= '$t_start' && wr_1 <= '$t_end'";
}

답변을 작성하시기 전에 로그인 해주세요.
전체 24
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT