테스트 사이트 - 개발 중인 베타 버전입니다

검색... 질문 좀 드려요... 채택완료

지수아빠 2년 전 조회 2,586

붉은 바람님의 다중검색스킨을 이용중인데요

https://sir.kr/g5_skin/34034?sfl=wr_subject%7C%7Cwr_content&stx=%EB%8B%A4%EC%A4%91%EA%B2%80%EC%83%89

여기에 기간 검색을 넣을려니까

너무너무 힘듭니다...ㅠㅠ

검색하고 짜집기하고

하다하다 염치없지만

질문드려봅니다....

 

검색버튼을 누르면

http://sample5.webpr.kr/bbs/board.php?bo_table=count_advance_excell&sop=and&sca=&wr_26=&wr_10=%EC%A0%91%EC%88%98&wr_13=&wr_15=&wr_23=&sdate=2023-08-01&edate=2023-08-02&sfl=wr_subject%7C%7Cwr_content%7C%7Cwr_7%7C%7Cwr_9%7C%7Cwr_11%7C%7Cwr_12%7C%7Cwr_20%7C%7Cwr_21%7C%7Cwr_24&stx=

주소창에 나오는데 기간검색은 안되네요...

기간검색 말고 다른것은 다 잘됩니다...

힌트라도 좀 주시면 ...... 

 

write.skin.php

</p>

<p><input type="text" name="wr_27" value="<?php echo $write['wr_27'] ?>" class="datepicker info_input" size="11" maxlength="10"></p>

<p>

 

skin.lib.php

</p>

<p><?php</p>

<p>$arr_search = array();</p>

<p>for($j = 1; $j < 30; $j++){</p>

<p>    if(isset($_GET["wr_".$j]) && @strlen($_GET["wr_".$j]) > 0 && !is_array($_GET["wr_".$j])){</p>

<p>        $qstr .= "&wr_".$j."=".urlencode($_GET["wr_".$j]);</p>

<p>    }else if(isset($_GET["wr_".$j])  && @is_array($_GET["wr_".$j])){</p>

<p>        for($x = 0; $x < count($_GET["wr_".$j]);$x++){</p>

<p>            $qstr .= "&wr_".$j."[]=".@urlencode($_GET["wr_".$j][$x]);</p>

<p>        }</p>

<p>    }</p>

<p>}</p>

<p>

 </p>

<p>// 검색 구문을 얻는다.</p>

<p>function get_sql_search_all($search_ca_name, $search_field, $search_text, $search_operator='and',$search_arr='')</p>

<p>{</p>

<p>    global $g5;</p>

<p> </p>

<p>    $str = "";</p>

<p>    if ($search_ca_name)</p>

<p>        $str = " ca_name = '$search_ca_name' ";</p>

<p> </p>

<p>    $search_text = strip_tags(($search_text));</p>

<p>    $search_text = trim(stripslashes($search_text));</p>

<p> </p>

<p>    if (!$search_text && $search_text !== '0' && !$search_arr) {</p>

<p>        if ($search_ca_name) {</p>

<p>            return $str;</p>

<p>        } else {</p>

<p>            return '0';</p>

<p>        }</p>

<p>    }</p>

<p> </p>

<p>        if(count($search_arr['name']) > 0){</p>

<p>            $se_flag = 0;</p>

<p>            for($j = 0; $j < count($search_arr['name']); $j++){</p>

<p>                if(is_array($search_arr['val'][$j])){</p>

<p>                    $str2 = "";</p>

<p> </p>

<p>                    for($x = 0; $x < count($search_arr['val'][$j]);$x++){</p>

<p>                        $str2 = append_sql2($str2, " or ", " {$search_arr['name'][$j]} like '%{$search_arr['val'][$j][$x]}%' ");</p>

<p>                    }</p>

<p>                    $str2 = " (".$str2.") ";</p>

<p>                    $str = append_sql2($str, " and", $str2);</p>

<p> </p>

<p>                }else if(strlen($search_arr['val'][$j]) > 0 && $search_arr['val'][$j] ){</p>

<p>                            $str = append_sql2($str, " and ", " {$search_arr['name'][$j]}  like '%{$search_arr['val'][$j]}%' ");</p>

<p>                       </p>

<p>                   </p>

<p>                }</p>

<p>            }</p>

<p>        }</p>

<p> </p>

<p>        if(strlen(@trim($search_text))){</p>

<p> </p>

<p>            if ($str)</p>

<p>        $str .= " and ";</p>

<p> </p>

<p>    // 쿼리의 속도를 높이기 위하여 ( ) 는 최소화 한다.</p>

<p>    $op1 = "";</p>

<p> </p>

<p>    // 검색어를 구분자로 나눈다. 여기서는 공백</p>

<p>    $s = array();</p>

<p>    $s = explode(" ", $search_text);</p>

<p> </p>

<p>    // 검색필드를 구분자로 나눈다. 여기서는 +</p>

<p>    $tmp = array();</p>

<p>    $tmp = explode(",", trim($search_field));</p>

<p>    $field = explode("||", $tmp[0]);</p>

<p>    $not_comment = "";</p>

<p>    if (!empty($tmp[1]))</p>

<p>        $not_comment = $tmp[1];</p>

<p> </p>

<p>    $str .= "(";</p>

<p>    for ($i=0; $i<count($s); $i++) {</p>

<p>        // 검색어</p>

<p>        $search_str = trim($s[$i]);</p>

<p>        if ($search_str == "") continue;</p>

<p> </p>

<p>        // 인기검색어</p>

<p>        //insert_popular($field, $search_str);</p>

<p> </p>

<p>        $str .= $op1;</p>

<p>        $str .= "(";</p>

<p> </p>

<p>        $op2 = "";</p>

<p>        for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)</p>

<p> </p>

<p>            // SQL Injection 방지</p>

<p>            // 필드값에 a-z A-Z 0-9 _ , | 이외의 값이 있다면 검색필드를 wr_subject 로 설정한다.</p>

<p>            $field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? strtolower($field[$k]) : "wr_subject";</p>

<p> </p>

<p>            $str .= $op2;</p>

<p>            switch ($field[$k]) {</p>

<p>                case "mb_id" :</p>

<p>                case "wr_name" :</p>

<p>                    $str .= " $field[$k] = '$s[$i]' ";</p>

<p>                    break;</p>

<p>                case "wr_hit" :</p>

<p>                case "wr_good" :</p>

<p>                case "wr_nogood" :</p>

<p>                    $str .= " $field[$k] >= '$s[$i]' ";</p>

<p>                    break;</p>

<p>                // 번호는 해당 검색어에 -1 을 곱함</p>

<p>                case "wr_num" :</p>

<p>                    $str .= "$field[$k] = ".((-1)*$s[$i]);</p>

<p>                    break;</p>

<p>                case "wr_ip" :</p>

<p>                case "wr_password" :</p>

<p>                    $str .= "1=0"; // 항상 거짓</p>

<p>                    break;</p>

<p>                // LIKE 보다 INSTR 속도가 빠름</p>

<p>                default :</p>

<p>                    if (preg_match("/[a-zA-Z]/", $search_str))</p>

<p>                        $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";</p>

<p>                    else</p>

<p>                        $str .= "INSTR($field[$k], '$search_str')";</p>

<p>                    break;</p>

<p>            }</p>

<p>            $op2 = " or ";</p>

<p>        }</p>

<p>        $str .= ")";</p>

<p> </p>

<p>        $op1 = " $search_operator ";</p>

<p>    }</p>

<p>    $str .= " ) ";</p>

<p>        }</p>

<p>    if (@$not_comment)</p>

<p>        $str .= " and wr_is_comment = '0' ";</p>

<p> </p>

<p>    return $str;</p>

<p>}</p>

<p> </p>

<p>// where 조건문자열 추가</p>

<p>function append_sql2($sql, $appender, $text) {</p>

<p>    if(strlen($sql) > 0) {</p>

<p>        $sql = $sql.$appender.$text;</p>

<p>    } else {</p>

<p>        $sql = $text;</p>

<p>    }</p>

<p>    return $sql;</p>

<p>}</p>

<p> </p>

<p>$arr_search = array();</p>

<p> </p>

<p>for($j = 1; $j < 30; $j++){</p>

<p>    if((@isset($_GET["wr_".$j]) && @strlen($_GET["wr_".$j]) > 0 ) || @is_array($_GET["wr_".$j])) {</p>

<p>        $arr_search['name'][] = "wr_".$j;</p>

<p>        $arr_search['val'][] = $_GET["wr_".$j];</p>

<p>    }</p>

<p>}</p>

<p> </p>

<p>if(@strlen($_GET['wr_id']) > 0){            // View</p>

<p>   </p>

<p>    $sql_search = "";</p>

<p>    // 검색이면</p>

<p>    if ($sca || $stx || $stx === '0' || count($arr_search) > 0) {</p>

<p> </p>

<p>            $se_arr = array();</p>

<p>            $se_arr = $arr_search;</p>

<p> </p>

<p>            // where 문을 얻음</p>

<p>            $sql_search = get_sql_search_all($sca, $sfl, $stx, $sop, $se_arr);</p>

<p>            $search_href = get_pretty_url($bo_table,'','&amp;page='.$page.$qstr);</p>

<p> </p>

<p>            $list_href = get_pretty_url($bo_table);</p>

<p> </p>

<p>    } else {</p>

<p>            $search_href = '';</p>

<p>            $list_href = get_pretty_url($bo_table,'',$qstr);</p>

<p>    }</p>

<p> </p>

<p>    if (!$board['bo_use_list_view']) {</p>

<p>            if ($sql_search)</p>

<p>                    $sql_search = " and " . $sql_search;</p>

<p> </p>

<p>            // 윗글을 얻음</p>

<p>            $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply < '{$write['wr_reply']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";</p>

<p>            $prev = sql_fetch($sql);</p>

<p>            // 위의 쿼리문으로 값을 얻지 못했다면</p>

<p>            if (!$prev['wr_id'])     {</p>

<p>                    $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num < '{$write['wr_num']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";</p>

<p>                    $prev = sql_fetch($sql);</p>

<p>            }</p>

<p> </p>

<p>            // 아래글을 얻음</p>

<p>            $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply > '{$write['wr_reply']}' {$sql_search} order by wr_num, wr_reply limit 1 ";</p>

<p>            $next = sql_fetch($sql);</p>

<p>            // 위의 쿼리문으로 값을 얻지 못했다면</p>

<p>            if (!$next['wr_id']) {</p>

<p>                    $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num > '{$write['wr_num']}' {$sql_search} order by wr_num, wr_reply limit 1 ";</p>

<p>                    $next = sql_fetch($sql);</p>

<p>            }</p>

<p>    }</p>

<p> </p>

<p>    // 이전글 링크</p>

<p>    $prev_href = '';</p>

<p>    if (isset($prev['wr_id']) && $prev['wr_id']) {</p>

<p>            $prev_wr_subject = get_text(cut_str($prev['wr_subject'], 255));</p>

<p>            $prev_href = get_pretty_url($bo_table, $prev['wr_id'], $qstr);</p>

<p>            $prev_wr_date = $prev['wr_datetime'];</p>

<p>    }</p>

<p> </p>

<p>    // 다음글 링크</p>

<p>    $next_href = '';</p>

<p>    if (isset($next['wr_id']) && $next['wr_id']) {</p>

<p>            $next_wr_subject = get_text(cut_str($next['wr_subject'], 255));</p>

<p>            $next_href = get_pretty_url($bo_table, $next['wr_id'], $qstr);</p>

<p>            $next_wr_date = $next['wr_datetime'];</p>

<p>    }</p>

<p> </p>

<p>    // 쓰기 링크</p>

<p>    $write_href = '';</p>

<p>    if ($member['mb_level'] >= $board['bo_write_level']) {</p>

<p>            $write_href = short_url_clean(G5_BBS_URL.'/write.php?bo_table='.$bo_table);</p>

<p>    }</p>

<p> </p>

<p>    // 답변 링크</p>

<p>    $reply_href = '';</p>

<p>    if ($member['mb_level'] >= $board['bo_reply_level']) {</p>

<p>            $reply_href = short_url_clean(G5_BBS_URL.'/write.php?w=r&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr);</p>

<p>    }</p>

<p> </p>

<p>    // 수정, 삭제 링크</p>

<p>    $update_href = $delete_href = '';</p>

<p>    // 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능</p>

<p>    if (($member['mb_id'] && ($member['mb_id'] === $write['mb_id'])) || $is_admin) {</p>

<p>            $update_href = short_url_clean(G5_BBS_URL.'/write.php?w=u&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr);</p>

<p>            set_session('ss_delete_token', $token = uniqid(time()));</p>

<p>            $delete_href = G5_BBS_URL.'/delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;token='.$token.'&amp;page='.$page.urldecode($qstr);</p>

<p>    }</p>

<p>    else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면</p>

<p>            $update_href = G5_BBS_URL.'/password.php?w=u&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;</p>

<p>            $delete_href = G5_BBS_URL.'/password.php?w=d&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;</p>

<p>    }</p>

<p> </p>

<p>    // 최고, 그룹관리자라면 글 복사, 이동 가능</p>

<p>    $copy_href = $move_href = '';</p>

<p>    if ($write['wr_reply'] == '' && ($is_admin == 'super' || $is_admin == 'group')) {</p>

<p>            $copy_href = G5_BBS_URL.'/move.php?sw=copy&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;</p>

<p>            $move_href = G5_BBS_URL.'/move.php?sw=move&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;</p>

<p>    }</p>

<p> </p>

<p>    $scrap_href = '';</p>

<p>    $good_href = '';</p>

<p>    $nogood_href = '';</p>

<p>    if ($is_member) {</p>

<p>            // 스크랩 링크</p>

<p>            $scrap_href = G5_BBS_URL.'/scrap_popin.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;</p>

<p> </p>

<p>            // 추천 링크</p>

<p>            if ($board['bo_use_good'])</p>

<p>                    $good_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;good=good';</p>

<p> </p>

<p>            // 비추천 링크</p>

<p>            if ($board['bo_use_nogood'])</p>

<p>                    $nogood_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;good=nogood';</p>

<p>    }</p>

<p> </p>

<p>}else{                                                      // List</p>

<p>    $sop = strtolower($sop);</p>

<p>    if ($sop != 'and' && $sop != 'or')</p>

<p>            $sop = 'and';</p>

<p> </p>

<p>    // 분류 선택 또는 검색어가 있다면</p>

<p>    $stx = trim($stx);</p>

<p>    //검색인지 아닌지 구분하는 변수 초기화</p>

<p>    $is_search_bbs = false;</p>

<p> </p>

<p>    if ($sca || $stx || $stx === '0' || count($arr_search) > 0) {     //검색이면</p>

<p> </p>

<p>            $se_arr = array();</p>

<p>            $se_arr = $arr_search;</p>

<p> </p>

<p>            $is_search_bbs = true;      //검색구분변수 true 지정</p>

<p>            $sql_search = get_sql_search_all($sca, $sfl, $stx, $sop, $se_arr);</p>

<p> </p>

<p>            // 접수일 기간 검색 조건 추가</p>

<p>            // if (!empty($_GET['sdate']) && !empty($_GET['edate'])) {</p>

<p>            //  $sdate = preg_replace('/[^0-9\-]/', '', $_GET['sdate']);</p>

<p>            //  $edate = preg_replace('/[^0-9\-]/', '', $_GET['edate']);</p>

<p>            //  $search_query[] = " wr_27 BETWEEN '$sdate' AND '$edate' ";</p>

<p>            // }</p>

<p>            ///////</p>

<p> </p>

<p>            // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)</p>

<p>            $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";</p>

<p>            $row = sql_fetch($sql);</p>

<p>            $min_spt = (int)$row['min_wr_num'];</p>

<p> </p>

<p>            if (!$spt) $spt = $min_spt;</p>

<p> </p>

<p>            $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";</p>

<p> </p>

<p>            // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)</p>

<p>            // 라엘님 제안 코드로 대체 <a href="http://sir.kr/g5_bug/2922" target="_blank" rel="noopener noreferrer">http://sir.kr/g5_bug/2922</a></p>

<p>            $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";</p>

<p>            $row = sql_fetch($sql);</p>

<p>            $total_count = $row['cnt'];</p>

<p>           </p>

<p>    } else {</p>

<p>            $sql_search = "";</p>

<p> </p>

<p>            $total_count = $board['bo_count_write'];</p>

<p>    }</p>

<p> </p>

<p>    if(G5_IS_MOBILE) {</p>

<p>            $page_rows = $board['bo_mobile_page_rows'];</p>

<p>            $list_page_rows = $board['bo_mobile_page_rows'];</p>

<p>    } else {</p>

<p>            $page_rows = $board['bo_page_rows'];</p>

<p>            $list_page_rows = $board['bo_page_rows'];</p>

<p>    }</p>

<p> </p>

<p>    if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)</p>

<p> </p>

<p>    // 년도 2자리</p>

<p>    $today2 = G5_TIME_YMD;</p>

<p> </p>

<p>    $list = array();</p>

<p>    $i = 0;</p>

<p>    $notice_count = 0;</p>

<p>    $notice_array = array();</p>

<p> </p>

<p>    // 공지 처리</p>

<p>    if (!$is_search_bbs) {</p>

<p>            $arr_notice = explode(',', trim($board['bo_notice']));</p>

<p>            $from_notice_idx = ($page - 1) * $page_rows;</p>

<p>            if($from_notice_idx < 0)</p>

<p>                    $from_notice_idx = 0;</p>

<p>            $board_notice_count = count($arr_notice);</p>

<p> </p>

<p>            for ($k=0; $k<$board_notice_count; $k++) {</p>

<p>                    if (trim($arr_notice[$k]) == '') continue;</p>

<p> </p>

<p>                    $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");</p>

<p> </p>

<p>                    if (!$row['wr_id']) continue;</p>

<p> </p>

<p>                    $notice_array[] = $row['wr_id'];</p>

<p> </p>

<p>                    if($k < $from_notice_idx) continue;</p>

<p> </p>

<p>                    $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);</p>

<p>                    $list[$i]['is_notice'] = true;</p>

<p> </p>

<p>                    $i++;</p>

<p>                    $notice_count++;</p>

<p> </p>

<p>                    if($notice_count >= $list_page_rows)</p>

<p>                            break;</p>

<p>            }</p>

<p>    }</p>

<p> </p>

<p>    $total_page  = ceil($total_count / $page_rows);  // 전체 페이지 계산</p>

<p>    $from_record = ($page - 1) * $page_rows; // 시작 열을 구함</p>

<p> </p>

<p>    // 공지글이 있으면 변수에 반영</p>

<p>    if(!empty($notice_array)) {</p>

<p>            $from_record -= count($notice_array);</p>

<p> </p>

<p>            if($from_record < 0)</p>

<p>                    $from_record = 0;</p>

<p> </p>

<p>            if($notice_count > 0)</p>

<p>                    $page_rows -= $notice_count;</p>

<p> </p>

<p>            if($page_rows < 0)</p>

<p>                    $page_rows = $list_page_rows;</p>

<p>    }</p>

<p> </p>

<p>    // 관리자라면 CheckBox 보임</p>

<p>    $is_checkbox = false;</p>

<p>    if ($is_member && ($is_admin == 'super' || $group['gr_admin'] == $member['mb_id'] || $board['bo_admin'] == $member['mb_id']))</p>

<p>            $is_checkbox = true;</p>

<p> </p>

<p>    // 정렬에 사용하는 QUERY_STRING</p>

<p>    $qstr2 = 'bo_table='.$bo_table.'&amp;sop='.$sop;</p>

<p> </p>

<p>    // 0 으로 나눌시 오류를 방지하기 위하여 값이 없으면 1 로 설정</p>

<p>    $bo_gallery_cols = $board['bo_gallery_cols'] ? $board['bo_gallery_cols'] : 1;</p>

<p>    $td_width = (int)(100 / $bo_gallery_cols);</p>

<p> </p>

<p>    // 정렬</p>

<p>    // 인덱스 필드가 아니면 정렬에 사용하지 않음</p>

<p>    //if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {</p>

<p>    if (!$sst) {</p>

<p>            if ($board['bo_sort_field']) {</p>

<p>                    $sst = $board['bo_sort_field'];</p>

<p>            } else {</p>

<p>                    $sst  = "wr_num, wr_reply";</p>

<p>                    $sod = "";</p>

<p>            }</p>

<p>    } else {</p>

<p>            $board_sort_fields = get_board_sort_fields($board, 1);</p>

<p>            if (!$sod && array_key_exists($sst, $board_sort_fields)) {</p>

<p>                    $sst = $board_sort_fields[$sst];</p>

<p>            } else {</p>

<p>                    // 게시물 리스트의 정렬 대상 필드가 아니라면 공백으로 (nasca 님 09.06.16)</p>

<p>                    // 리스트에서 다른 필드로 정렬을 하려면 아래의 코드에 해당 필드를 추가하세요.</p>

<p>                    // $sst = preg_match("/^(wr_subject|wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";</p>

<p>                    $sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";</p>

<p>            }</p>

<p>    }</p>

<p> </p>

<p>    if(!$sst)</p>

<p>            $sst  = "wr_num, wr_reply";</p>

<p> </p>

<p>    if ($sst) {</p>

<p>            $sql_order = " order by {$sst} {$sod} ";</p>

<p>    }</p>

<p> </p>

<p>    if ($is_search_bbs) {</p>

<p>            $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";</p>

<p>    } else {</p>

<p>            $sql = " select * from {$write_table} where wr_is_comment = 0 ";</p>

<p>            if(!empty($notice_array))</p>

<p>                    $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";</p>

<p>            $sql .= " {$sql_order} limit {$from_record}, $page_rows ";</p>

<p>    }</p>

<p>   </p>

<p>    // 페이지의 공지개수가 목록수 보다 작을 때만 실행</p>

<p>    if($page_rows > 0) {</p>

<p>            $result = sql_query($sql);</p>

<p> </p>

<p>            $k = 0;</p>

<p> </p>

<p>            while ($row = sql_fetch_array($result))</p>

<p>            {</p>

<p>                    // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다</p>

<p>                    if ($is_search_bbs)</p>

<p>                            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_parent']}' ");</p>

<p> </p>

<p>                    $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);</p>

<p>                    if (strstr($sfl, 'subject')) {</p>

<p>                            $list[$i]['subject'] = search_font($stx, $list[$i]['subject']);</p>

<p>                    }</p>

<p>                    $list[$i]['is_notice'] = false;</p>

<p>                    $list_num = $total_count - ($page - 1) * $list_page_rows - $notice_count;</p>

<p>                    $list[$i]['num'] = $list_num - $k;</p>

<p> </p>

<p>                    $i++;</p>

<p>                    $k++;</p>

<p>            }</p>

<p>    }</p>

<p> </p>

<p>    g5_latest_cache_data($board['bo_table'], $list);</p>

<p> </p>

<p>    $write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $qstr.'&amp;page='));</p>

<p> </p>

<p>    $list_href = '';</p>

<p>    $prev_part_href = '';</p>

<p>    $next_part_href = '';</p>

<p>    if ($is_search_bbs) {</p>

<p>            $list_href = get_pretty_url($bo_table);</p>

<p> </p>

<p>            $patterns = array('#&amp;page=[0-9]*#', '#&amp;spt=[0-9\-]*#');</p>

<p> </p>

<p>            //if ($prev_spt >= $min_spt)</p>

<p>            $prev_spt = $spt - $config['cf_search_part'];</p>

<p>            if (isset($min_spt) && $prev_spt >= $min_spt) {</p>

<p>                    $qstr1 = preg_replace($patterns, '', $qstr);</p>

<p>                    $prev_part_href = get_pretty_url($bo_table,0,$qstr1.'&amp;spt='.$prev_spt.'&amp;page=1');</p>

<p>                    $write_pages = page_insertbefore($write_pages, '<a href="'.$prev_part_href.'" class="pg_page pg_prev">이전검색</a>');</p>

<p>            }</p>

<p> </p>

<p>            $next_spt = $spt + $config['cf_search_part'];</p>

<p>            if ($next_spt < 0) {</p>

<p>                    $qstr1 = preg_replace($patterns, '', $qstr);</p>

<p>                    $next_part_href = get_pretty_url($bo_table,0,$qstr1.'&amp;spt='.$next_spt.'&amp;page=1');</p>

<p>                    $write_pages = page_insertafter($write_pages, '<a href="'.$next_part_href.'" class="pg_page pg_end">다음검색</a>');</p>

<p>            }</p>

<p>    }</p>

<p>

 </p>

<p>    $write_href = '';</p>

<p>    if ($member['mb_level'] >= $board['bo_write_level']) {</p>

<p>            $write_href = short_url_clean(G5_BBS_URL.'/write.php?bo_table='.$bo_table);</p>

<p>    }</p>

<p> </p>

<p>    $nobr_begin = $nobr_end = "";</p>

<p>    if (preg_match("/gecko|firefox/i", $_SERVER['HTTP_USER_AGENT'])) {</p>

<p>            $nobr_begin = '<nobr>';</p>

<p>            $nobr_end   = '</nobr>';</p>

<p>    }</p>

<p> </p>

<p>    // RSS 보기 사용에 체크가 되어 있어야 RSS 보기 가능 061106</p>

<p>    $rss_href = '';</p>

<p>    if ($board['bo_use_rss_view']) {</p>

<p>            $rss_href = G5_BBS_URL.'/rss.php?bo_table='.$bo_table;</p>

<p>    }</p>

<p> </p>

<p>    $stx = get_text(stripslashes($stx));</p>

<p>}</p>

<p> </p>

<p>?></p>

<p>

 

list.skin.php

</p>

<p><!-- 다중검색 시작 { --></p>

<p><form name="fsearch" method="get"></p>

<p>        <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>"></p>

<p>        <input type="hidden" name="sop" value="and"></p>

<p>        <label for="sfl" class="sound_only">검색대상</label></p>

<p>    <div class="search_box"></p>

<p>        <div class="scr_top">통합검색 & 엑셀</div></p>

<p>        <div class="scr_left"></p>

<p>            <ul></p>

<p>                <li>고객분류</li></p>

<p>                <li></p>

<p>                    <!-- 게시판 카테고리 시작 { --></p>

<p>                    <select name="sca" id="fsca" class="info_input"></p>

<p>                        <option value="">전체</option></p>

<p>                        <?php</p>

<p>                        $categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 | 로 되어 있음</p>

<p>                        for ($i=0; $i<count($categories); $i++) {</p>

<p>                        ?></p>

<p>                            <option value="<?php echo $categories[$i]?>"><?php echo $categories[$i]?></option></p>

<p>                        <?php }?></p>

<p>                    </select></p>

<p>                    <script>$('#fsca').val('<?php echo $_GET['sca']?>');</script></p>

<p>                    <!-- } 게시판 카테고리 끝 --></p>

<p>                </li></p>

<p> </p>

<p>               </p>

<p> </p>

<p>             </p>

<p>               </p>

<p> </p>

<p>                <li>최종결제</li></p>

<p>                <li class="select"></p>

<p>                    <input type="radio" id="select9" name="wr_15" value="" <?php if($_GET['wr_15'] == "") { echo 'checked';} ?>><label for="select9"> 전체</label></p>

<p>                    <input type="radio" id="select10" name="wr_15" value="진행중" <?php if($_GET['wr_15'] == "진행중"){ echo 'checked'; } ?>><label for="select10"> 진행중</label></p>

<p>                    <input type="radio" id="select11" name="wr_15" value="완료" <?php if($_GET['wr_15'] == "완료"){ echo 'checked'; } ?>><label for="select11"> 완료</label></p>

<p>                </li></p>

<p> </p>

<p>                <li>정산완료</li></p>

<p>                <li class="select"></p>

<p>                    <label><input type="radio" id="select12" name="wr_23" value="" <?php if($_GET['wr_23'] == "") { echo 'checked';} ?>><label for="select12"> 전체</label></p>

<p>                    <label><input type="radio" id="select13" name="wr_23" value="미결" <?php if($_GET['wr_23'] == "미결"){ echo 'checked'; } ?>><label for="select13"> 미결</label></p>

<p>                    <label><input type="radio" id="select14" name="wr_23" value="완료" <?php if($_GET['wr_23'] == "완료"){ echo 'checked'; } ?>><label for="select14"> 완료</label></p>

<p>                </li></p>

<p> </p>

<p>                <li>접수일</li></p>

<p>                <li></p>

<p>                    <input class='datepicker day_input' type='input' id='sdate' name='sdate' size='11' autocomplete="off" itemname='시작일' value='<?php echo $sdate?>'></p>

<p>                    ~</p>

<p>                    <input class='datepicker day_input' type='input' id='edate' name='edate' size='11' autocomplete="off" itemname='마지막일' value='<?php echo $edate?>'></p>

<p>                </li></p>

<p> </p>

<p>                <li>필드검색</li></p>

<p>                <li></p>

<p>                    <select name="sfl" id="sfl" style='display:none;'></p>

<p>                        <option value="wr_subject||wr_content||wr_7||wr_9||wr_11||wr_12||wr_20||wr_21||wr_24">통합검색</option></p>

<p>                    </select></p>

<p>                    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" id="stx" class="info_input" size="25" maxlength="20" placeholder=" 검색어를 입력해주세요"></p>

<p>                </li></p>

<p>            </ul></p>

<p>        </div></p>

<p></form>       </p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
2년 전

주석되어있는 접수일 기간검색부분 주석해제 후

마지막코드 수정

search_query[]--->
$sql_search .=" and wr_27 ~~~

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

지수아빠
2년 전
답변주셔서 감사합니다 균이님~
말씀하신 부분이
eyekiss 님이 알려주신 건데 안되요.....
균이
2년 전
날짜 입력 모양이 어떤 형식인가요?
저장된 일자 형식이 2023-08-01 이런 형식이면 아래 코드를 삭제해야 하고
검색일자 입력 형식도 동일해야 합니다
$sdate = preg_replace(~~~~
$edate = preg_replace(~~~~
지수아빠
2년 전
균이님 정말 감사합니다~~~
말씀하신대로 해서 해결했습니다!~
해결은 했는데
기간포함 다중검색은 되는데
기간만 검색하면 안되네요....ㅜㅜ
어째튼 너무너무 감사합니다~
균이
2년 전
조건을 추가하세요
if ($sca || $stx || $stx === '0' || count($arr_search) > 0) { //검색이면
--> 검색일자 추가
if ($sca || $stx || $stx === '0' || count($arr_search) > 0 || $sdate || $edate) { //검색이면

$sql_search = get_sql_search_all($sca, $sfl, $stx, $sop, $se_arr); 다음행에 추가
if( ($sdate || $edate) && !$stx && !$sca) $sql_search = " (1) ";
지수아빠
2년 전
균이님 감사합니다~
요즘 퇴근이 늦어서 감사하단 글도 못썼네요...
알려주신대로 해보니 기간만 검색은 되는데 다중검색하면 기간내 데이터가 모두 나와요
if( ($sdate || $edate) && !$stx && !$sca && !$sfl) $sql_search = " (1) "; <-- 요렇게 코끼리몸통 더듬는 식으로 넣어봤더니 다중검색은 되는데
기간만 검색하면 데이터가 없다고 나옵니다....
아무튼 한발짝 뗀 기분입니다...감사합니다
질문을 다시 올려볼게요...

댓글을 작성하려면 로그인이 필요합니다.

여분 컬럼 중에 어느 곳에

날짜 정보가 있나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

지수아빠
2년 전
엑스엠엘님 답변주셔서 감사합니다...
날짜정보가 무엇을 말씀하시는건지... ㅜㅜ
접수일은 wr_27에 입력하고 있습니다.
엑스엠엘
2년 전
wr_27이 기간 안에 들어 있는지를 검사하는 거군요.
$sql_search = get_sql_search_all($sca, $sfl, $stx, $sop, $se_arr);

// 접수일 기간 검색 조건 추가
// if (!empty($_GET['sdate']) && !empty($_GET['edate'])) {
// $sdate = preg_replace('/[^0-9\-]/', '', $_GET['sdate']);
// $edate = preg_replace('/[^0-9\-]/', '', $_GET['edate']);
// $search_query[] = " wr_27 BETWEEN '$sdate' AND '$edate' ";
// }
///////

$sql_search로 where 조건을 받아 오는데
$search_query[] = " wr_27 BETWEEN '$sdate' AND '$edate' ";
여기를
$sql_search .= " wr_27 BETWEEN '$sdate' AND '$edate' ";
이렇게 바꾸어야 하지 않을까요?
지수아빠
2년 전
매번 감사합니다 엑스엠엘님~~

댓글을 작성하려면 로그인이 필요합니다.

s
2년 전

구체적인 코드를 봐야 알거 같습니다.

소스를 공유해주시던지 아니면 제작의뢰하시던지 해야 할거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

지수아빠
2년 전
감사합니다 swallow님
구체적인 코드는 어떤것을 말씀하시는걸까요?

댓글을 작성하려면 로그인이 필요합니다.

e
2년 전

이렇게 수정해보세요.

</p>

<p>            // 접수일 기간 검색 조건 추가</p>

<p>            if (!empty($_GET['sdate']) && !empty($_GET['edate'])) {</p>

<p>                $sdate = preg_replace('/[^0-9\-]/', '', $_GET['sdate']);</p>

<p>                $edate = preg_replace('/[^0-9\-]/', '', $_GET['edate']);</p>

<p>                $sql_search .= " and wr_27 BETWEEN '$sdate' AND '$edate' ";</p>

<p>            }</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

지수아빠
2년 전
감사합니다. eyekiss 님
그렇게 바꿔도 안되네요......ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인