검색... 질문 좀 드려요... 채택완료
붉은 바람님의 다중검색스킨을 이용중인데요
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
여기에 기간 검색을 넣을려니까
너무너무 힘듭니다...ㅠㅠ
검색하고 짜집기하고
하다하다 염치없지만
질문드려봅니다....
검색버튼을 누르면
주소창에 나오는데 기간검색은 안되네요...
기간검색 말고 다른것은 다 잘됩니다...
힌트라도 좀 주시면 ......
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,'','&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&bo_table='.$bo_table.'&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&bo_table='.$bo_table.'&wr_id='.$wr_id.'&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.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr);</p>
<p> }</p>
<p> else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면</p>
<p> $update_href = G5_BBS_URL.'/password.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;</p>
<p> $delete_href = G5_BBS_URL.'/password.php?w=d&bo_table='.$bo_table.'&wr_id='.$wr_id.'&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&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;</p>
<p> $move_href = G5_BBS_URL.'/move.php?sw=move&bo_table='.$bo_table.'&wr_id='.$wr_id.'&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.'&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.'&wr_id='.$wr_id.'&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.'&wr_id='.$wr_id.'&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.'&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.'&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('#&page=[0-9]*#', '#&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.'&spt='.$prev_spt.'&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.'&spt='.$next_spt.'&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개
주석되어있는 접수일 기간검색부분 주석해제 후
마지막코드 수정
search_query[]--->
$sql_search .=" and wr_27 ~~~
답변에 대한 댓글 5개
저장된 일자 형식이 2023-08-01 이런 형식이면 아래 코드를 삭제해야 하고
검색일자 입력 형식도 동일해야 합니다
$sdate = preg_replace(~~~~
$edate = preg_replace(~~~~
말씀하신대로 해서 해결했습니다!~
해결은 했는데
기간포함 다중검색은 되는데
기간만 검색하면 안되네요....ㅜㅜ
어째튼 너무너무 감사합니다~
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) ";
요즘 퇴근이 늦어서 감사하단 글도 못썼네요...
알려주신대로 해보니 기간만 검색은 되는데 다중검색하면 기간내 데이터가 모두 나와요
if( ($sdate || $edate) && !$stx && !$sca && !$sfl) $sql_search = " (1) "; <-- 요렇게 코끼리몸통 더듬는 식으로 넣어봤더니 다중검색은 되는데
기간만 검색하면 데이터가 없다고 나옵니다....
아무튼 한발짝 뗀 기분입니다...감사합니다
질문을 다시 올려볼게요...
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 3개
날짜정보가 무엇을 말씀하시는건지... ㅜㅜ
접수일은 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' ";
이렇게 바꾸어야 하지 않을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
구체적인 코드는 어떤것을 말씀하시는걸까요?
댓글을 작성하려면 로그인이 필요합니다.
이렇게 수정해보세요.
</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개
그렇게 바꿔도 안되네요......ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
말씀하신 부분이
eyekiss 님이 알려주신 건데 안되요.....