검색에서 날짜 검색을 하고 싶습니다!

검색에서 날짜 검색을 하고 싶습니다!

QA

검색에서 날짜 검색을 하고 싶습니다!

본문

검색에서 날짜를 선택하여 검색하려고 합니다!

그런데 특정한 날만 검색하는 것이 아니라 날짜에 기간을 선택하여 그 기간에 포함되는 값을 출력하거나

그것이 어렵다면 선택된 날 이후의 값들을 출력하고 싶습니다!

3537816078_1622689391.2425.png

3537816078_1622689446.8984.png

 해당 값들을 DB에서 가져올 수는 있는데 이 쿼리문을 어디에 넣어서 수정해야할지 막막해서 질문글을 남깁니다!!

 

그리고 현재 CANADESIGN님의 팁을 보고 날짜 검색을 수정 중입니다!

https://sir.kr/g5_tip/13753

 

고수님들 한번만 귀한 시간 부탁드립니다!! 감사합니다ㅠㅠ

 

 

이 질문에 댓글 쓰기 :

답변 2

"/lib/common.lib.php" 

function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and'){

...

            switch ($field[$k]) {

                case "wr_1" :

                    $str .= " wr_10 >= '$wr_1' ";

                    break;
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";
                    break;

 

 

 

/bbs/board.php?bo_table=somebbs&sfl=wr_1&stx=2022-03-25

 

이렇게 검색하시면 됩니다.

 

 

엑스엠엘님 항상 친절한 답변 감사드립니다! 그런데 써주신 것들이 잘 이해가 안되서요! 왜 $str .= " wr_10 >= '$wr_1' "; 에서 wr_10이 들어가는지도 잘 이해가 되지 않습니다!!ㅠㅠㅠ 많이 부족하기에 더 많이 알고 싶습니다!

죄송합니다.. 이제 그누보드를 시작하고 있는 단계에서 구현해보고 싶은게 많아 이렇게 계속 질문을 남깁니다.

list.skin.php에서

    <!-- 게시판 검색 시작 { -->
    <div class="bo_sch_wrap">
        <fieldset class="bo_sch">
            <h3>검색</h3>
            <form name="fsearch" method="get">
            <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
            <input type="hidden" name="sca" value="<?php echo $sca ?>">
            <input type="hidden" name="sop" value="and">
            <label for="sfl" class="sound_only">검색대상</label>
            <select name="sfl" id="sfl">
                <option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject'); ?>>사료명</option>
            </select>
            <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
            <div class="sch_bar">
                <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder=" 검색어를 입력해주세요">
                <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
            </div>
            <button type="button" class="bo_sch_cls" title="닫기"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
            </form>
        </fieldset>
        <div class="bo_sch_bg"></div>
    </div>

여기부분에서 수정을 하라는 말씀이시죠?

http://localhost/bbs/board.php?bo_table=purchase_drug&sfl=wr_1&stx=2021-03-25

이 주소로 들어가려고 하는데 들어가 검색을 해도 그냥 일반 화면만 나오는데 어떻게 나오도록 하는지 잘 이해가 되지 않습니다..

항상 감사드립니다.

네 맨 처음에 알려주신
        for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)

            // SQL Injection 방지
            // 필드값에 a-z A-Z 0-9 _ , | 이외의 값이 있다면 검색필드를 wr_subject 로 설정한다.
            $field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? strtolower($field[$k]) : "wr_subject";

            $str .= $op2;
            switch ($field[$k]) {
                case "wr_1" :
                    $str.="wr_1>= '$wr_1'";
                    break;
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";

것들을 위의 것들처럼 수정했는데

function get_sql_search() 함수는 따로 수정하지 않았습니다.

보드스킨안에 board.head.skin.php 만드시구요.

 

검색창 태그안에 input wr_2 : 시작날짜 input wr_3 : 끝나는날짜 태그만드시구요

 

 board.head.skin.php에서

if($_GET['wr_2'] && $_GET['wr_3']){

 $sql = 'wr_1 between "'.$_GET['wr_2'].'" AND  "'.$_GET['wr_3'].'"';

  $sql_apms_where .= ' and ' . $sql;

}

감사합니다! 그런데 시작하는 날 끝나는 날을 만들기 보다는 wr_1의 기간을 선택해서 그 기간 사이에 해당하는 값들은 다 출력하고 싶은 거여서요!! 이것도 고수님께서 알려주신 방법을 응용해서 하면 되는걸까요?

<!-- ////////날짜 검색 시작 { -->

<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/jquery-ui-git.js"></script>
<script>
  $.datepicker.setDefaults({
    dateFormat: 'yy-mm',
    prevText: '이전 달',
    nextText: '다음 달',
    monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
    monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
    dayNames: ['일', '월', '화', '수', '목', '금', '토'],
    dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'],
    dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'],
    showMonthAfterYear: true,
    yearSuffix: '년'
  });

    $(function() {
        $("#stx2, #e_Date").datepicker({
            dateFormat: 'yy-mm-dd'
        });
    });

</script>


    <!-- 게시판 검색 시작 { -->
    <div class="bo_sch_wrap">
        <fieldset class="bo_sch">
            <h3>검색</h3>
            <form name="fsearch" method="get">
            <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
            <input type="hidden" name="sca" value="<?php echo $sca ?>">
            <input type="hidden" name="sop" value="and">
            <label for="sfl" class="sound_only">검색대상</label>
            <!-- 날짜 검색 시작 { -->
            <!-- } 날짜검색 끝 --> 
            <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
            <div class="sch_bar">
                <input type="hidden" name="sfl" value="wr_1"<?php echo get_selected($sfl, 'wr_1'); ?>>
            <i class="fa fa-calendar" aria-hidden="true"></i> <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx2" class="sch_input" size="25" maxlength="20" placeholder="날짜검색">
            <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span>
            </div>
            <button type="button" class="bo_sch_cls" title="닫기"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
            </form>
        </fieldset>
        <div class="bo_sch_bg"></div>
    </div>

이게 지금 사용하고 있는 검색입니다!!

고수님의 말씀은 여기 datepicker 에서

    $(function() {
        $("#stx2, #e_Date").datepicker({
            dateFormat: 'yy-mm-dd'
          date함수에서 wr_1만큼 날짜를 빼면된다는 말씀이시죠?
        });
    });

<?
if($_GET['wr_1']){
 
  $sql='SELECT * FROM g5_write_purchase_drug WHERE wr_1 >= "'.$_GET['wr_1'].'"'

  $sql_apms_where .= ' and ' . $sql;

}?>

맨 처음에 고수님이 알려주신대로 이렇게 수정하면 왜 안될까요?

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

회원로그인

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