이전 목록 다음
채택완료

sql 출력 문제

2021-06-02 (수) 17:01:32 3,360
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 포인트
2021-06-02 (수) 17:54:52
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개

2021-06-02 (수) 18:12:24
안되네여ㅠㅠ
2021-06-02 (수) 18:17:08
echo $date1;
echo $date2;

에코로 불러내면 정상적으로 날짜가 기준일 부터 1달전과 한달 후가 나오는데 출력이 되질 않네요 ㅠㅠ
2021-06-02 (수) 18:58:26

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

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

답변에 대한 댓글 3개

2021-06-02 (수) 19:42:59
<?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;

}
2021-06-02 (수) 19:45:09
$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에 $가 빠졌네요.
2021-06-02 (수) 18:40:31

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

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

이렇게 하면되지 않을가요

답변에 대한 댓글 1개

2021-06-02 (수) 18:51:29
안되여 ㅠㅠ

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개

2021-06-02 (수) 18:12:14
안되네여 ㅠㅠ

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

답변에 대한 댓글 1개

2021-06-02 (수) 17:21:47
echo로 찍으면 잘 나오는데 데이터를 못 가져 오네여

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