검색에서 날짜 검색을 하고 싶습니다! 채택완료

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

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

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

3537816078_1622689391.2425.png

3537816078_1622689446.8984.png

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

 

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

https://sir.kr/g5_tip/13753

 

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

 

 

답변 2개

채택된 답변
+20 포인트

"/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

 

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

 

 

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

답변에 대한 댓글 7개

엑스엠엘님 항상 친절한 답변 감사드립니다! 그런데 써주신 것들이 잘 이해가 안되서요! 왜 $str .= " wr_10 >= '$wr_1' "; 에서 wr_10이 들어가는지도 잘 이해가 되지 않습니다!!ㅠㅠㅠ 많이 부족하기에 더 많이 알고 싶습니다!
오타입니다.
wr_10 쓰던 코를 복사하다가...
wr_1으로 바꿔 주세요.
답변 항상 감사합니다!! 그런데 혹시


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

이 부분은 무슨 의미인지 알 수 있을까요?
sfl,stx를 지정하면
해당 게시판에서 검색한 내용이 나옵니다.
죄송합니다.. 이제 그누보드를 시작하고 있는 단계에서 구현해보고 싶은게 많아 이렇게 계속 질문을 남깁니다.

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

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

항상 감사드립니다.
"/lib/common.lib.php"

function get_sql_search()
여기 소스 변경하신 건가요?
네 맨 처음에 알려주신
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;

}

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

답변에 대한 댓글 4개

감사합니다! 그런데 시작하는 날 끝나는 날을 만들기 보다는 wr_1의 기간을 선택해서 그 기간 사이에 해당하는 값들은 다 출력하고 싶은 거여서요!! 이것도 고수님께서 알려주신 방법을 응용해서 하면 되는걸까요?
네. 현재날짜기준이라면 wr_1이 1일 7일 30일이면
date함수에서 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;

}?>

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

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

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

로그인
🐛 버그신고