sql 출력 문제

sql 출력 문제

QA

sql 출력 문제

본문

$sql = "select * from `g5_search` where remark1 = '{$list[$i]['wr_2']}' AND mb_id = '{$member["mb_id"]}' AND BETWEEN DATE_ADD('$today{$list[$i]['wr_4']}',INTERVAL -1 MONTH ) AND '$today{$list[$i]['wr_4']}'";
$res = sql_query($sql);
while($row=sql_fetch_array($res)){
    $accIn[] = $row;
   
        $basic = $row;

&today가 y-m- 으로 설정되어 있고 wr_4가 일로 되어 있을때 매월 wr_4에 지정일로 부터 최근 한달간 데이터를 가져오고 싶은데 출력이 안되네요 ㅠㅠ

이 질문에 댓글 쓰기 :

답변 5


$time1 = strtotime($today . $list[$i]['wr_4']);
$date1 = date('Y-m-d', strtotime('-1 month', $time1));
$date2 = $today . $list[$i]['wr_4'];
$sql = "
  select * 
    from `g5_search` 
   where remark1 = '{$list[$i]['wr_2']}' 
     AND mb_id = '{$member['mb_id']}' 
     AND {날짜칼럼} BETWEEN '{$date1}' and '{$date2}'
";

우선 sql문을 echo로 찍어보셔서 어떻게 출력되는지랑 그 출력된걸 phpmyadmin에서 실행 시켜보시는건 어떨까요?.

today 라는 파라미터가 Y-m 구조로 되어있고

wr_4의 데이타에는 일자가 있는경우

그런데 한달간의 데이타를 가져와야할 기준이 없네요

 

그래서, 임의로  wr_datetime 을 기준으로 체크하면

 


<?php
 
$tomonth = $_REQUEST['today'];
 
$sql = "select * from `g5_search`
          where remark1 = '{$list[$i]['wr_2']}'
            AND mb_id = '{$member["mb_id"]}'
               AND wr_datetime  BETWEEN DATE_SUB(date(".$today."-".$list[$i]['wr_4']."), INTERVAL 1 MONTH ) AND date(".$today."-".$list[$i]['wr_4'].") ";
$res = sql_query($sql);
while($row=sql_fetch_array($res)){
   ...

날짜  범위 가 정상적으로 나온다면 

WHERE DATE(날짜컬럼) BETWEEN '날짜1' AND '날짜2'

 

이렇게 하면되지 않을가요

만들어진 쿼리문을 올려보세요  아님 다른 조건 다빼고 날짜 부분만 만들어서 강제로 조회 해보고요

db 날짜 데이터 유형이라든지 하나씩 봐보세용 

<?php for ($i=0; $i < count($list); $i++) {
$time1 = strtotime($today.$list[$i]['wr_3']);
$date1 = date('Y-m-d', strtotime('-1 month', $time1));
$date2 = $today.$list[$i]['wr_3'];
$sql = "select * from `g5_search` where mb_id = '{$member["mb_id"]}'  AND remark1 = '{$list[$i]['wr_2']}' AND DATE(trdate) BETWEEN '{data1}' AND '{data2}'";
$res = sql_query($sql);
while($row=sql_fetch_array($res)){
    $accIn[] = $row;
 
        $basic = $row;

}

$sql = "select * from `g5_search` where mb_id = '{$member["mb_id"]}'  AND remark1 = '{$list[$i]['wr_2']}' AND DATE(trdate) BETWEEN '2021-05-14' AND '2021-06-14'";

이렇게 수기로 작성하면 나오긴 하는데

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

회원로그인

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