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

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

승슝 4년 전 조회 1,902

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

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

날짜를 검색했을 때

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개

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

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

4년 전

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개

승슝
4년 전
귀한 시간 내어 답변해주셔서 정말 감사합니다! 그런데 값은 나오는데 첫번째 날짜만 인식하고 값이 나옵니다ㅠㅅㅠ
마르스컴퍼니
4년 전
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문 등을 확인해가며 디버깅해볼 수 있습니다.
승슝
4년 전
정말 감사합니다!!

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

cuwaaang
4년 전

일단 저기 밑에다가

print_r($_GET);

exit();

 

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

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

 

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

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

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

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

로그인