채택완료
한달전 혹은 지난 달 검색 쿼리문 도와주세요~
안녕하세요.
게시물의 오늘 갯수, 어제 갯수, 이번달 갯수 등을 표시하기 위해서 하루를 다 바치고 있습니다 ㅠ_ㅠ
거의 해결 되어 가는데
지난 달 갯수를 구하기 어렵습니다.
도움 좀 부탁 드릴게요.
이번달 게시물의 갯수는 아래처럼 했습니다.
Copy
$bo_table = 'cost'; // 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime between ";
// 이번달
$sql = "$sql_common '" . date("Y-m-01") . "' and '" . date("Y-m-d",strtotime("last day of this month")) . " 23:59:59'";
$result = sql_fetch($sql);
지난 달은 어떻게 하면 알 수 있을까요?
Copy
// 지난달
$sql = "$sql_common '" . date("Y-m-d",strtotime("-1 month")) . "' and '" . date("Y-m-d",strtotime("last day of -1 month")) . " 23:59:59'";
위처럼 했더니 숫자가 나오긴 하는데 실제 갯수와 틀리게 나옵니다.
|
답변 6개 / 댓글 9개
채택된 답변
+20 포인트
지난달은 between 으로 하지 말고 like 로 검색하시면 안되나요?
Copy
$bo_table = 'cost'; // 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime ";
// 이번달
$sql = "$sql_common between '" . date("Y-m-01") . "' and '" . date("Y-m-d",strtotime("last day of this month")) . " 23:59:59'";
$result_curr = sql_fetch($sql);
// 지난달
$sql = "$sql_common like '" . date("Y-m-d",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
쓰고보니 이번달도 날짜 지정이 아니라면
Copy
$bo_table = 'cost'; // 게시판 id $sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime like ";
// 이번달
$sql = "$sql_common '" . date("Y-m-01") . "%'";
$result_curr = sql_fetch($sql);
// 지난달
$sql = "$sql_common '" . date("Y-m-d",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
하면 안되는건가요?
답변에 대한 댓글 5개
위에서 부터 정확히 붙여넣으세요 ㅋㅋ
[code]
$bo_table = 'cost';
// 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime like ";
// 이번달
$sql = "$sql_common '" . date("Y-m") . "%'";
$result_curr = sql_fetch($sql);
// 지난달
$sql = "$sql_common '" . date("Y-m",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
[/code]
[code]
$bo_table = 'cost';
// 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime like ";
// 이번달
$sql = "$sql_common '" . date("Y-m") . "%'";
$result_curr = sql_fetch($sql);
// 지난달
$sql = "$sql_common '" . date("Y-m",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
[/code]
@백수1995 님 감사합니다.
$bo_table = 'cost'; // 게시판 id
$sql_common3 =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime like ";
// 이번달
$sql = "$sql_common3 '" . date("Y-m-01") . "%'";
$result_curr = sql_fetch($sql);
echo "이번달 DB :". $result_curr['cnt']."개<br />";
// 지난달
$sql = "$sql_common3 '" . date("Y-m-d",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
echo "이번달 DB :". $result_prev['cnt']."개<br />";
이렇게 해보니 숫자가 나오긴 하는데 확 줄어서 나옵니다.
이전달은
$bo_table = 'cost'; // 게시판 id
$sql_common2 =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_is_comment = 0 and wr_datetime ";
// 지난달
$sql = "$sql_common2 like '" . date("Y-m",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
echo "이전달 DB :". $result_prev['cnt']."개<br />";
말씀하신대로 처리하니 잘 나오는 것 같습니다.
감사합니다!
$bo_table = 'cost'; // 게시판 id
$sql_common3 =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime like ";
// 이번달
$sql = "$sql_common3 '" . date("Y-m-01") . "%'";
$result_curr = sql_fetch($sql);
echo "이번달 DB :". $result_curr['cnt']."개<br />";
// 지난달
$sql = "$sql_common3 '" . date("Y-m-d",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
echo "이번달 DB :". $result_prev['cnt']."개<br />";
이렇게 해보니 숫자가 나오긴 하는데 확 줄어서 나옵니다.
이전달은
$bo_table = 'cost'; // 게시판 id
$sql_common2 =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_is_comment = 0 and wr_datetime ";
// 지난달
$sql = "$sql_common2 like '" . date("Y-m",strtotime("-1 month")) . "%'";
$result_prev = sql_fetch($sql);
echo "이전달 DB :". $result_prev['cnt']."개<br />";
말씀하신대로 처리하니 잘 나오는 것 같습니다.
감사합니다!
Copy
$bo_table = 'cost'; // 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime LIKE ";
// 이번달
$sql = "$sql_common '" . date("Y-m") . "%' ";
$result = sql_fetch($sql);
// 지난달
$sql = "$sql_common '" . date("Y-m",strtotime('-1 month')) . "%' ";
$result = sql_fetch($sql);
$sql_common 에는 어떤게 들어가나요?
제가 드린문장을 이해하고 사용하신게 맞는지요?
Copy
$bo_table = 'cost'; // 게시판 id
$sql_common =" select count(wr_id) as cnt from $g4[write_prefix]$bo_table where wr_datetime ";
// 이번달
$sql = "$sql_common BETWEEN LAST_DAY(NOW() - interval 2 month) + interval 1 DAY
AND LAST_DAY(NOW() - interval 1 MONTH) ";
;
$result_curr = sql_fetch($sql);
로 확인해보세요
아무래도 between 이 누락된듯 보여집니다.
원하시는건 한달전의 데이타가 아니라.
전월의 데이타를 원하시는것이군요
전월의 데이타는
Copy
WHERE wr_datetime BETWEEN LAST_DAY(NOW() - interval 2 month) + interval 1 DAY
AND LAST_DAY(NOW() - interval 1 MONTH)
로 해보세요
답변에 대한 댓글 1개
답변 주셔서 감사드립니다.
말씀하신 대로 적용해 보았습니다만
$sql = "$sql_common '" . LAST_DAY(NOW() - interval 2 month) + interval 1 DAY AND LAST_DAY(NOW() - interval 1 MONTH)";
$result = sql_fetch($sql);
Parse error: syntax error, unexpected '2' (T_LNUMBER) 라고 에러가 나옵니다.
말씀하신 대로 적용해 보았습니다만
$sql = "$sql_common '" . LAST_DAY(NOW() - interval 2 month) + interval 1 DAY AND LAST_DAY(NOW() - interval 1 MONTH)";
$result = sql_fetch($sql);
Parse error: syntax error, unexpected '2' (T_LNUMBER) 라고 에러가 나옵니다.
답변을 작성하려면 로그인이 필요합니다.
작성해주신대로
$sql = "$sql_common '" . date("Y-m-d",strtotime("-1 month")) . "'%";
$result_prev = sql_fetch($sql);
echo "이전달 DB :".$$result_prev['cnt']."개<br />";
이렇게 해봤는데
elect count(wr_id) as cnt from g4_write_cost where wr_datetime between '2019-11-27'%
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
위와 같은 에러메시지가 나옵니다.