db데이터 리스트 날짜별 검색/각필드명으로 검색

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
db데이터 리스트 날짜별 검색/각필드명으로 검색

QA

db데이터 리스트 날짜별 검색/각필드명으로 검색

본문

안녕하세요. 

 

"날짜별 검색 기능" 추가에 대하여서 문의 드립니다.

날짜별검색, 오늘, 어제, 이번주, 이번달, 저번달 / 필드명 검색

 

저번에 질문 후 아직 완성하지 못하여서 다시 질문드립니다. 

 

1. DB는 

api로 새로운 테이블인 deposit_list에 입금내역을 저장했습니다.

2. deposit_list.php에서 현재 select로 전체 리스트를 보여줍니다.

3. 기존의 게시판(board 형태)가 아니기 때문에 단축어들이나 서치바를 쓸 수 없고 skin폴더도 쓰지 않기에 기존의 게시판 여분필드 등의 값을 쓸 수 없습니다. 

 

기존거를 참고로 list.php를 보면서 수정을 해서 적용했는데 구조가 너무 다르니까 실패하고 결국 원점입니다.

 

도움 부탁드립니다. 

 

 

이 질문에 댓글 쓰기 :

답변 2


처음 코드 4행에 추가하세요
$today = date("Ymd", time()); $yesterday = date("Ymd", time()-86400 );
if($sday == 1) $sql_search .= " and trxDay ='$today' "; //오늘
else if($sday == 2) $sql_search .= " and trxDay ='$yesterday' "; //어제
else if($sday == 3){ $fr_date =date("Ymd", strtotime("last Monday")); $to_date = $today; } //이번주  
else if($sday == 4){ $fr_date =date("Ym01", time()); $to_date = $today; } //이번달
else if($sday == 5){ $fr_date =date("Ym01", strtotime("last month")); $to_date = date("Ymt", strtotime("last month")); } //지난달
 
if($fr_date) $sql_search .= " and trxDay >='$fr_date' ";
if($to_date) $sql_search .= " and trxDay <='$to_date' ";
 
 
검색버튼 들어갈 자리에 넣으세요
<form name='sch' method='post'>
검색일자 <input type='text' name='fr_date'> ~ <input type='text' name='to_date'> <input type='submit' val;ue='검색'>
</form>
<button onclick="location.href='?sday=1'"> 오늘</buton>
<button onclick="location.href='?sday=2'"> 어제</buton>
<button onclick="location.href='?sday=3'"> 이번주</buton>
<button onclick="location.href='?sday=4'"> 이번달</buton>
<button onclick="location.href='?sday=5'"> 지난달</buton>
 

 

 

연휴임에도 답변 달아주셔서 감사합니다. 위 내용 확인해서 적용했는데, 오늘 어제 이번주 등 클릭으로 페이지가 읽어집니다.

그러나 한 번 검색을 실행 후 검색일자를 통하여서 입력을 하면(20220202 ~ 20220205)로 하면 검색이 되지 않습니다. 초기 화면에서는 검색이 가능한데 한 번 실행 후에는 결과값을 가지고 오지 못합니다.

최소한 날짜 필드명과 어떤 형식으로 저장되는지를 알려주어야죠

추측으로 답변해주기를 바라는 것인가요?

 

 

네 질문에 내용이 충분치 않았습니다.

테이블명은 deposit_noti
데이터 필드는
id, vactId, retry, mchtId, issueId, bankCd, account, sender, amount, trxType, rootVactId, trxDay, trxTime, trackId, udf1, udf2, stlDay, stlAmount, stlFee, stlFeeVat, created_at, updated_at
위와 같은데
여기서 trxDay와 trxTime이 날짜 변수 입니다.
varchar(20) 문자열로 20220118 / 162501 형태로 저장되어 있습니다. 시간은 16시 25분 01초 입니다.

select에서 member테이블의 mb_1과 mb_3이 udf1과 udf2와 비교됩니다.


$sql_common = " from deposit_noti ";

$sql_search = " where mchtId = '".$member['mb_4']."' ";
$sql_search .= " and udf1 = '".$member['mb_1']."' and mchtId != '".$member['mb_2']."' ";

$sql_order = " order by trxDay desc, trxTime desc"; // 날짜 순위로 정렬

$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

$sql3 = " select count(*) as cnt {$sql_common} {$sql_search} and trxType = 'deposit' {$sql_order} ";
$row3 = sql_fetch($sql3);
$total_count3 = $row3['cnt'];

$sql4 = " select count(*) as cnt {$sql_common} {$sql_search} and trxType != 'deposit' {$sql_order} ";
$row4 = sql_fetch($sql4);
$total_count4 = $row4['cnt'];

$sql2 = " select sum(amount) as sum_amount {$sql_common} {$sql_search} and trxType = 'deposit' {$sql_order} ";
$row2 = sql_fetch($sql2);
$sum_amount = $row2['sum_amount'];
$sum_stlamount = $row2['sum_amount']*((100-$member['mb_5'])/100);

$rows = 20; // 목록수
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함



현재는 이렇게 페이지를 불러와서 리스트 있습니다.


 <?php
        $sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
        $result = sql_query($sql);
        for ($i=0; $row=sql_fetch_array($result); $i++) {
            $mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
            $stlFee = $row['amount']*$member['mb_5']/100;
            $stlAmount = $row['amount']-$stlFee;
        ?>
        <tr>
            <td class="td_4"><?php echo $row['vactId']; ?></td>
            <td class="td_4"><?php echo get_text($row['mchtId']); ?></td>
            <td class="td_4"><?php echo get_text($row['sender']); ?></td>
            <td class="td_3">은행코드: <?php echo get_text($row['bankCd']); ?> ** 계좌번호: <?php echo get_text($row['account']); ?></td>
            <td class="td_4"><?php echo get_text($row['issueId']); ?></td>
            <td class="td_1"><?php echo get_text($row['trxType']); ?></td>
            <td class="td_4"><?php echo get_text($row['trackId']); ?></td>
            <td class="td_4"><?php echo number_format($row['amount']); ?></td>
            <td class="td_1"><?php echo $stlFee; ?></td>
            <td class="td_1"><?php echo $stlAmount ?></td>
            <td class="td_4"><?php echo conv_date_format('y-m-d H:i:s', $row['trxDay'].$row['trxTime']); ?></td>
        </tr>
        <?php } ?>


이렇게 for문으로 나머지 배열을 보여줍니다.

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

회원로그인

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