한달전 혹은 지난 달 검색 쿼리문 도와주세요~
본문
안녕하세요.
게시물의 오늘 갯수, 어제 갯수, 이번달 갯수 등을 표시하기 위해서 하루를 다 바치고 있습니다 ㅠ_ㅠ
거의 해결 되어 가는데
지난 달 갯수를 구하기 어렵습니다.
도움 좀 부탁 드릴게요.
이번달 게시물의 갯수는 아래처럼 했습니다.
$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);
지난 달은 어떻게 하면 알 수 있을까요?
// 지난달
$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
지난달은 between 으로 하지 말고 like 로 검색하시면 안되나요?
$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);
쓰고보니 이번달도 날짜 지정이 아니라면
$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);
하면 안되는건가요?
!-->!-->
$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);
여기 보시면 바로 아하... 하실듯 합니다.
$last_month_s = date("Y-m",strtotime('-1 month'));
"SELECT * FROM `g5_write_notice` WHERE `wr_datetime` LIKE '".$last_month_s."%'";
형태로 변수를 대입해서 추출해보세요
!-->원하시는건 한달전의 데이타가 아니라.
전월의 데이타를 원하시는것이군요
전월의 데이타는
WHERE wr_datetime BETWEEN LAST_DAY(NOW() - interval 2 month) + interval 1 DAY
AND LAST_DAY(NOW() - interval 1 MONTH)
로 해보세요
!-->
$sql_common 에는 어떤게 들어가나요?
제가 드린문장을 이해하고 사용하신게 맞는지요?
$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 이 누락된듯 보여집니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.