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

날짜 검색 관련 질문입니다! 채택완료

안녕하세요! 저번에도 이것과 관련해서 질문을 남겼는데 제대로 해결이 되지 않아 다시 질문을 올리게 되었습니다! 정말 죄송합니다 ㅠㅠㅠ

지금 다른 분들이 올려놓은 것들은 참고하면서 수정을 하고 있는데

날짜를 검색했을 때

theme>basic>skin>board>basic>list.skin.php 에서

</p>

<p>    <!-- 게시판 검색 시작 { --></p>

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

<p>        <fieldset class="bo_sch"></p>

<p>            <h3>검색</h3></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="sca" value="<?php echo $sca ?>"></p>

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

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

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

<p>            <!-- } 날짜검색 끝 -->  </p>

<p>            <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label></p>

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

<p>                <input type="hidden" name="sfl" value="wr_1_start"<?php echo get_selected($sfl, 'wr_1'); ?>></p>

<p>                <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="날짜검색"></p>

<p>                ~</p>

<p>                <input type="hidden" name="sfl" value="wr_1_end"<?php echo get_selected($sfl, 'wr_1'); ?>></p>

<p>                <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="날짜검색"></p>

<p>            <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></p>

<p>            </div></p>

<p>            <button type="button" class="bo_sch_cls" title="닫기"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button></p>

<p>            </form></p>

<p>        </fieldset></p>

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

<p>    </div></p>

<p>

 

여기서 이렇게 input을 넣고 그 값 사이의 값들을 받고

 

bbs>list.php에서

 

</p>

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

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

<p>    if($bo_table == "purchase_drug")//약품구매게시판인경우</p>

<p>    $sql_search="{$sfl} between '{$wr_1_start}' and '{$wr_1_end}'";</p>

<p>    else</p>

<p>    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);</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>

 

이렇게 if else로 나누어 게시판 테이블명이 동일했을 때 관련 리스트가 출련된다고 저는 이해를 했는데 도저히 값이 나오지 않아 다시 질문하게 되었습니다. 

 

mysql에서 나오는 쿼리문만 입력하면 바로 나올 것 같은데 이것들을 어디서 입력해야할지도 정말 막막합니다!ㅠㅠㅠ

 

너무 초보라 아직 개념이 많이 부족하지만 열심히 하고 있습니다!! 귀한 시간을 내어 알려주셔서 항상 감사합니다!!

 

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

답변 3개

채택된 답변
+20 포인트
    

검색

> ~ sfl2" value="wr_1_end">

 

 

그리고 다음 함수에서 굵은 부분 추가

 

 

 

"/lib/common.lib.php" 

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

global $g4, $stx2;

...

            switch ($field[$k]) {

                case "wr_12" :

                    $str .= " wr_1 between '$stx' and '$stx2' ";

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

 

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

답변에 대한 댓글 3개

소중한 시간 내어 주셔서 정말 감사합니다!! 지금 알려주신대로 입력했습니다! 그런데 기간선택중에 마지막 기간은 인식을 하는데 처음 시작 기간을 인식하지 못해서 처음부터 두번째 기간 선택 날까지 화면에 표출됩니다!ㅠㅠ
앗 실수가 있었네요.
$str .= " wr_1 between '$stx' and '$stx2' ";
여기만
$str .= " wr_1 between '{$s[$i]}' and '$stx2' ";
이렇게 고쳐 주세요.
어떻게요ㅠㅠㅠㅠㅠ진짜 감사합니다!! 되었어요!! 드디어 되었어요!! 정말 감사합니다!! 어떻게 작동되는 건지 이제 찬찬히 분석해보겠습니다 정말 감사드려요!

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

GET 변수를 어떻게 전달할 지, 전달받은 GET 변수로 쿼리문을 어떻게 만들지에 대한 개념을 먼저 정리해보는 것이 도움이 될 수 있습니다.

 

&sfl=wr_1&stx=2021-05-25&stx2=2021-08-10

 

=>

 

$sql = " ~ where {$sfl} between {$stx} and {$stx2} ";

 

형태가 될 것입니다.

 

이렇게 하기 위해 수정해야할 부분을 정리하면 다음과 같습니다.

</p>

<p>           <div class="sch_bar">

                <input type="hidden" name="sfl" value="wr_1_start"<?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="날짜검색">

                ~

                <input type="hidden" name="sfl" value="wr_1_end"<?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">

=>

</p>

<p>           <div class="sch_bar">

                <input type="hidden" name="sfl" value="wr_1">

                <i class="fa fa-calendar" aria-hidden="true"></i> 

                <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="날짜검색">

                ~                

                <i class="fa fa-calendar" aria-hidden="true"></i> 

                <input type="text" name="stx2" value="<?php echo stripslashes($stx2) ?>" 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">

 

</p>

<p>    if($bo_table == "purchase_drug")//약품구매게시판인경우

    $sql_search="{$sfl} between '{$wr_1_start}' and '{$wr_1_end}'";

    else

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

<p>[code]</p>

<p>

=>

</p>

<p>    if ($bo_table == "purchase_drug" && $sfl == 'wr_1')//약품구매게시판인경우

      $sql_search= " {$sfl} between '{$stx}' and '{$stx2}' ";

    else

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

<p>

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

답변에 대한 댓글 3개

귀한 시간 내어 답변해주셔서 정말 감사합니다! 그런데 값은 나오는데 첫번째 날짜만 인식하고 값이 나옵니다ㅠㅅㅠ
if ($bo_table == "purchase_drug" && $sfl == 'wr_1')//약품구매게시판인경우
$sql_search= " {$sfl} between '{$stx}' and '{$stx2}' ";
else
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);

echo $sql_search;
exit;

로 sql문 등을 확인해가며 디버깅해볼 수 있습니다.
정말 감사합니다!!

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

일단 저기 밑에다가

print_r($_GET);

exit();

 

찍고 실행한다음 값을 비교해보세요

아마 sfl 이 배열로 넘어간다거나 원하는 값이 아닐거입니다.

 

하나씩 찍어보면서 수정하면될거에여

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

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

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

로그인

전체 질문 목록

🐛 버그신고