이전 목록 다음
채택완료

sql 출력 문제

Copy
$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개 / 댓글 8개

채택된 답변
+20 포인트

Copy
$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}'
";

답변에 대한 댓글 2개

안되네여ㅠㅠ
echo $date1;
echo $date2;

에코로 불러내면 정상적으로 날짜가 기준일 부터 1달전과 한달 후가 나오는데 출력이 되질 않네요 ㅠㅠ

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

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

답변에 대한 댓글 3개

<?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'";

이렇게 수기로 작성하면 나오긴 하는데
$sql = "select * from `g5_search` where mb_id = '{$member["mb_id"]}' AND remark1 = '{$list[$i]['wr_2']}' AND DATE(trdate) BETWEEN '{$data1}' AND '{$data2}'";

data1,2에 $가 빠졌네요.

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

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

 

이렇게 하면되지 않을가요

답변에 대한 댓글 1개

안되여 ㅠㅠ

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

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

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

 

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

 

Copy
<?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)){
   ...

답변에 대한 댓글 1개

안되네여 ㅠㅠ

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

답변에 대한 댓글 1개

echo로 찍으면 잘 나오는데 데이터를 못 가져 오네여

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