잘못된 구문이나 함수를 도저히 모르겠습니다.. 정보
잘못된 구문이나 함수를 도저히 모르겠습니다..
본문
몇일때 씨름중인데 도저히 못잡네요 ^^
여러 고수님들의 도움과 활용팁의 소스를 이용해서 이만큼까지 왔습니다.
지난 1주일 (월요일~일요일) 동안 게시글,코멘트,출석 순위를 뽑는 소스를 공부중입니다.
아래와 같은 소스를 이용해서 뽑아보고자 하는데 아무것도 출력이 안됩니다.
에러메세지가 안나오는 것을 보면 구문이나 함수상의 문제는 아닌 듯 한데..
어디가 어떻게 잘못돼서 안나오는지를 모르겠습니다.
where a.bn_datetime between '$monday' and '$sunday' 이 구문에서
bn_datetime 를 이렇게 사용하는 것이 맞는거지요?
고수님들 다시 한번 따뜻한 가르침 부탁드립니다 ^^
============================================================================
$tomorrow = strtotime('+1 day');
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow));
$sunday = date("Y-m-d H:i:s",strtotime('+6 day',$monday));
if ($skin_dir)
$skin_path = "$g4[path]/skin/top5/$skin_dir";
else
$skin_path = "$g4[path]/skin/top5/rank5";
$Writelist = array();
$Commentlist = array();
$Visitlist = array();
//글쓰기 랭킹
$sql_common = " from $g4[board_new_table] a, $g4[member_table] b "; //where mb_level < 10 ";
$sql_common = $sql_common . " where a.bn_datetime between '$monday' and '$sunday' ";
$sql_common = $sql_common . " and a.mb_id <> ''";
$sql_common = $sql_common . " and a.wr_id = a.wr_parent ";
$sql_common = $sql_common . " and a.mb_id = b.mb_id ";
$sql_common = $sql_common . " and b.mb_level < 3 ";
$sql_order = " order by cnt desc ";
$sql = " SELECT b.mb_nick,count(*) cnt
$sql_common
group by b.mb_nick
$sql_order
limit 0,$rows";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$Writelist[$i][mb_nick] = conv_subject($row[mb_nick], $subject_len, "..");
$Writelist[$i][mb_cnt] = $row[cnt];
}
여러 고수님들의 도움과 활용팁의 소스를 이용해서 이만큼까지 왔습니다.
지난 1주일 (월요일~일요일) 동안 게시글,코멘트,출석 순위를 뽑는 소스를 공부중입니다.
아래와 같은 소스를 이용해서 뽑아보고자 하는데 아무것도 출력이 안됩니다.
에러메세지가 안나오는 것을 보면 구문이나 함수상의 문제는 아닌 듯 한데..
어디가 어떻게 잘못돼서 안나오는지를 모르겠습니다.
where a.bn_datetime between '$monday' and '$sunday' 이 구문에서
bn_datetime 를 이렇게 사용하는 것이 맞는거지요?
고수님들 다시 한번 따뜻한 가르침 부탁드립니다 ^^
============================================================================
$tomorrow = strtotime('+1 day');
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow));
$sunday = date("Y-m-d H:i:s",strtotime('+6 day',$monday));
if ($skin_dir)
$skin_path = "$g4[path]/skin/top5/$skin_dir";
else
$skin_path = "$g4[path]/skin/top5/rank5";
$Writelist = array();
$Commentlist = array();
$Visitlist = array();
//글쓰기 랭킹
$sql_common = " from $g4[board_new_table] a, $g4[member_table] b "; //where mb_level < 10 ";
$sql_common = $sql_common . " where a.bn_datetime between '$monday' and '$sunday' ";
$sql_common = $sql_common . " and a.mb_id <> ''";
$sql_common = $sql_common . " and a.wr_id = a.wr_parent ";
$sql_common = $sql_common . " and a.mb_id = b.mb_id ";
$sql_common = $sql_common . " and b.mb_level < 3 ";
$sql_order = " order by cnt desc ";
$sql = " SELECT b.mb_nick,count(*) cnt
$sql_common
group by b.mb_nick
$sql_order
limit 0,$rows";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$Writelist[$i][mb_nick] = conv_subject($row[mb_nick], $subject_len, "..");
$Writelist[$i][mb_cnt] = $row[cnt];
}
댓글 전체
$sunday = date("Y-m-d H:i:s",strtotime('+6 day',$monday));
이 부분에서. 값이 나오지 않습니다. 오류가 나올꺼에요. 왜냐면, 이미.
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow)); <== 이놈에서.
strtotime 함수를 써서 그 다시 strtotime 함수를 만들 수, 결과값을 받을 수 없으니깐요...
여기 까지만, 힌트 드리고, 끝까지 한번, 혼자 힘으로 시도 해보세요.
다음에, 난관에 부딛치면, 또 질문하세요, 쪽지 보내시든지요.
이 부분에서. 값이 나오지 않습니다. 오류가 나올꺼에요. 왜냐면, 이미.
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow)); <== 이놈에서.
strtotime 함수를 써서 그 다시 strtotime 함수를 만들 수, 결과값을 받을 수 없으니깐요...
여기 까지만, 힌트 드리고, 끝까지 한번, 혼자 힘으로 시도 해보세요.
다음에, 난관에 부딛치면, 또 질문하세요, 쪽지 보내시든지요.
캐논협주곡님 답변 감사드립니다 ^^
제가 조금 더 공부해보겠습니다..
strtotime 함수가 중복되면 안되는 건가 보군요..
그럼 $sunday의 값은 $tomorrow 을 기준으로 삼거나 아니면 기준 자체를 다시 만들어야겠군요..
해서 안돼면... 쪽지를 슬쩍~ ㅎㅎ
신경써주셔서 정말이지 너무 감사드립니다~
소스를 조금 수정해보았습니다..
근데 결과는 역시나 안나오네요 ㅎㅎ
아래 소스처럼 바꿔봤는데 어디가 잘못된걸까요?
$sunday를 부르는데 strtotime에서 $monday값을 불러오지 않고 $mon값을 불러오게 했는데 틀렸나봅니다.
=============================================================================
$tomorrow = strtotime('+1 day');
$mon = strtotime('-2 monday', $tomorrow);
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow));
$sunday = date("Y-m-d H:i:s",strtotime('+6 day',$mon));
if ($skin_dir)
$skin_path = "$g4[path]/skin/top5/$skin_dir";
else
$skin_path = "$g4[path]/skin/top5/rank5";
$Writelist = array();
$Commentlist = array();
$Visitlist = array();
//글쓰기 랭킹
$sql_common = " from $g4[board_new_table] a, $g4[member_table] b "; //where mb_level < 10 ";
$sql_common = $sql_common . " where a.bn_datetime between '$monday' and '$sunday' ";
$sql_common = $sql_common . " and a.mb_id <> ''";
$sql_common = $sql_common . " and a.wr_id = a.wr_parent ";
$sql_common = $sql_common . " and a.mb_id = b.mb_id ";
$sql_common = $sql_common . " and b.mb_level < 3 ";
$sql_order = " order by cnt desc ";
$sql = " SELECT b.mb_nick,count(*) cnt
$sql_common
group by b.mb_nick
$sql_order
limit 0,$rows";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$Writelist[$i][mb_nick] = conv_subject($row[mb_nick], $subject_len, "..");
$Writelist[$i][mb_cnt] = $row[cnt];
}
제가 조금 더 공부해보겠습니다..
strtotime 함수가 중복되면 안되는 건가 보군요..
그럼 $sunday의 값은 $tomorrow 을 기준으로 삼거나 아니면 기준 자체를 다시 만들어야겠군요..
해서 안돼면... 쪽지를 슬쩍~ ㅎㅎ
신경써주셔서 정말이지 너무 감사드립니다~
소스를 조금 수정해보았습니다..
근데 결과는 역시나 안나오네요 ㅎㅎ
아래 소스처럼 바꿔봤는데 어디가 잘못된걸까요?
$sunday를 부르는데 strtotime에서 $monday값을 불러오지 않고 $mon값을 불러오게 했는데 틀렸나봅니다.
=============================================================================
$tomorrow = strtotime('+1 day');
$mon = strtotime('-2 monday', $tomorrow);
$monday = date("Y-m-d H:i:s",strtotime('-2 monday', $tomorrow));
$sunday = date("Y-m-d H:i:s",strtotime('+6 day',$mon));
if ($skin_dir)
$skin_path = "$g4[path]/skin/top5/$skin_dir";
else
$skin_path = "$g4[path]/skin/top5/rank5";
$Writelist = array();
$Commentlist = array();
$Visitlist = array();
//글쓰기 랭킹
$sql_common = " from $g4[board_new_table] a, $g4[member_table] b "; //where mb_level < 10 ";
$sql_common = $sql_common . " where a.bn_datetime between '$monday' and '$sunday' ";
$sql_common = $sql_common . " and a.mb_id <> ''";
$sql_common = $sql_common . " and a.wr_id = a.wr_parent ";
$sql_common = $sql_common . " and a.mb_id = b.mb_id ";
$sql_common = $sql_common . " and b.mb_level < 3 ";
$sql_order = " order by cnt desc ";
$sql = " SELECT b.mb_nick,count(*) cnt
$sql_common
group by b.mb_nick
$sql_order
limit 0,$rows";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$Writelist[$i][mb_nick] = conv_subject($row[mb_nick], $subject_len, "..");
$Writelist[$i][mb_cnt] = $row[cnt];
}
저도 고쳐야 할 점이지만, 소스를 띄운 질문보면, 대충 읽고, 뭐~ 틀린 부분이 있으면, 그거에 대하여, 의구심만 이야기 하는 타입입니다.
쪽지까지 주셨길래, 유심히, 소스까지 봤는데요,
질문 하신 내용은, 지난주 월요일 부터,,,,일요일까지 글을 뽑아 내는 것인지,
아니면, 지난 일주일 글을 뽑아 내는 의도 이신지, 구분이 안가는데요.
보통, 월요일 부터, 일요일까지는,, 뽑지 않습니다.
왜냐면, 오늘이, 수요일이면, 화요일 글을 뽑아 오지 않기 때문이죠.
그래서, 오늘로 기준해서 일주일 분을 뽑아 오라!!! <== 여기가 좋겠습니다.
$now = date("Y-m-d H:i:s"); // 지금 시간을 구해 와라.
$timestmp = strtotime($now); // 지금 시간을 strtotime 을 이용하여, timestmp 값을 가져와라.
$lastWeek = date('Y-m-d H:i:s', strtotime("-1 week", $timestmp)); 가져 온값을, 다시, strtotime 으로 이용하여 , 지난 1주일 분을 가져 와라.,
/////////////////////////////////
이번엔 원하는 대로, 1주일 분을 만들었으니, 이제, db 에 보내서 ,1주일을 select 해와라!
where a.bn_datetime >= '{$lastWeek"}'; // 현재 bn_datetim 필드 시간 보다 같거나 작은 1 주일 시간을 가져와라...
//////////////////////////////////////////////////////
이렇게 하면, bn_datetime 이, 필드 형식이, datetime 형식이면, 충분히 가져 올것입니다.
그 후부터는,,, 응용 하면, 1주일치,,1달치,,, 모두 가져 올 수 있을 겁니다.. 수고!!!!
참! 작업 일지를 꼭 작성 하시길 바랍니다..!!!
쪽지까지 주셨길래, 유심히, 소스까지 봤는데요,
질문 하신 내용은, 지난주 월요일 부터,,,,일요일까지 글을 뽑아 내는 것인지,
아니면, 지난 일주일 글을 뽑아 내는 의도 이신지, 구분이 안가는데요.
보통, 월요일 부터, 일요일까지는,, 뽑지 않습니다.
왜냐면, 오늘이, 수요일이면, 화요일 글을 뽑아 오지 않기 때문이죠.
그래서, 오늘로 기준해서 일주일 분을 뽑아 오라!!! <== 여기가 좋겠습니다.
$now = date("Y-m-d H:i:s"); // 지금 시간을 구해 와라.
$timestmp = strtotime($now); // 지금 시간을 strtotime 을 이용하여, timestmp 값을 가져와라.
$lastWeek = date('Y-m-d H:i:s', strtotime("-1 week", $timestmp)); 가져 온값을, 다시, strtotime 으로 이용하여 , 지난 1주일 분을 가져 와라.,
/////////////////////////////////
이번엔 원하는 대로, 1주일 분을 만들었으니, 이제, db 에 보내서 ,1주일을 select 해와라!
where a.bn_datetime >= '{$lastWeek"}'; // 현재 bn_datetim 필드 시간 보다 같거나 작은 1 주일 시간을 가져와라...
//////////////////////////////////////////////////////
이렇게 하면, bn_datetime 이, 필드 형식이, datetime 형식이면, 충분히 가져 올것입니다.
그 후부터는,,, 응용 하면, 1주일치,,1달치,,, 모두 가져 올 수 있을 겁니다.. 수고!!!!
참! 작업 일지를 꼭 작성 하시길 바랍니다..!!!
답변 감사드립니다..
그리고 쪽지로 주신 따끔한 충고 항상 명심하면 열심히 배워보겠습니다 ^^
제가 뽑아오고자 했던 것은 지난 1주일인데..
오늘 기준으로 1주일 전부터 오늘까지가 아니라 지난 1주일이었습니다.
그것을 전 지난 1주를 지난주 월요일부터 일요일까지 이렇게 뽑으려고 했던 것이구요..
오늘을 기준으로 지난 기간을 뽑는 것은 몇번 해보아서 함수를 뽑아낼 수 있었는데..
지난 1주를 뽑는게 만만치 않게 꼬이더라구요..
그래서 여러 고수님들의 도움으로 하루를 더한뒤 다시 2주전 월요일부터 일요일까지..
이런식으로 함수값을 뽑아보고자 했던 것입니다..
조금 더 공부해보고 결과를 얻어내보도록 노력하겠습니다 ^^
친절하고 자세한 설명 정말 너무 감사드립니다~
그리고 쪽지로 주신 따끔한 충고 항상 명심하면 열심히 배워보겠습니다 ^^
제가 뽑아오고자 했던 것은 지난 1주일인데..
오늘 기준으로 1주일 전부터 오늘까지가 아니라 지난 1주일이었습니다.
그것을 전 지난 1주를 지난주 월요일부터 일요일까지 이렇게 뽑으려고 했던 것이구요..
오늘을 기준으로 지난 기간을 뽑는 것은 몇번 해보아서 함수를 뽑아낼 수 있었는데..
지난 1주를 뽑는게 만만치 않게 꼬이더라구요..
그래서 여러 고수님들의 도움으로 하루를 더한뒤 다시 2주전 월요일부터 일요일까지..
이런식으로 함수값을 뽑아보고자 했던 것입니다..
조금 더 공부해보고 결과를 얻어내보도록 노력하겠습니다 ^^
친절하고 자세한 설명 정말 너무 감사드립니다~