제로보드 게시판별 통계 뷰어

 
반응형
그냥 심심해서 만들어 봤음.. 깔끔하게 되려면 좀 더 손을 봐야 하는데.. 더 손을 볼지는 미지수...
정호닷넷에서 게시판상단의 게시판 설명을 클릭하면 해당 게시판의 통계자료를 볼수 있음.


게시판에 해당년, 해당월에 몇건의 글이 올라왔고, 어떤 카테고리에 글이 몇건이 쓰여졌는지 확인할수 있도록 만들어 봤습니다.
그냥 일하기 싫어서 대충 만들어서 그런지 중복되고, 조잡하네요...
개인적으로 독서용 게시판이 있는데 일년동안 몇권을, 한달동안 몇권을, 어떤 카테고리에 몇권을 읽었나 편하게 볼수 없을까라는 생각에 만들어 봤습니다.
아래의 소스에 아이디와 비밀번호를 입력하신후에 제로보드 게시판에 이름을 logbook.htm 로 저장하신후에
불러오실때는 http://홈페이지/bbs/logbook.htm?board=게시판명 이런 식으로 불러오시면 됩니다.
기본값으로 당해년도로 조회가 되고, 다른년도를 보시려면
http://홈페이지/bbs/logbook.htm?board=게시판명&yy=2005 이런식으로 접근하시면 됩니다.

아래는 테스트 페이지입니다.
http://danbisw.maru.net/project/bbs/logbook.htm?board=book
이곳저곳을 클릭해보시면 다양한 방법으로 볼 수 있습니다...

소스보기 - 감추기
<?
        if(!$board) {$board = "bbs";} // 기본게시판
        $conn=mysql_connect("localhost","아이디","비밀번호");
        mysql_select_db("아이디",$conn);
?>
<style>
body,td,select,input,div,form,textarea,center,option,pre,blockquote {font-size:8pt;font-family:verdana;color:666666;line-height:150%;letter-spacing:-1}
A:link{font-size:9pt;font-family:굴림;color:#305678;text-decoration:none;}
A:visited{font-size:9pt;font-family:굴림;color:#305678;text-decoration:none;}
A:active{font-size:9pt;font-family:굴림;color:#305678;text-decoration:none;}
A:hover{font-size:9pt;font-family:굴림;color:999999;text-decoration:none;}
BODY
{scrollbar-face-color:#f0f0f0;
scrollbar-shadow-color:#c6c6c6;
scrollbar-highlight-color:white;
scrollbar-3dlight-color:#c6c6c6;
scrollbar-darkshadow-color:#FFFFFF;
scrollbar-track-color:#FFFFFF;
scrollbar-arrow-color:black}
</style>
<META content='text/html; charset=euc-kr' http-equiv=Content-Type>
<title>Board Counter ver 0.1</title>
<?
$surl = sprintf("http://%s%s?%s",$HTTP_SERVER_VARS['HTTP_HOST'], $HTTP_SERVER_VARS['PHP_SELF'],$HTTP_SERVER_VARS['QUERY_STRING']);
if(!$yy) {
        if(!$ym) {$timeinfo = getdate(time()); $yy = $timeinfo["year"]; }
        else {$yy=substr($ym,0,4);}
        }
if($kind&&$kind>0) {$kwhere = " and zetyx_board_".$board.".category = ".$kind;}

// 내용
if($vm) {
        if(!$ym) {
                $result=mysql_query("SELECT FROM_UNIXTIME( reg_date, '%Y%m' ),subject FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y') = '".$yy."'".$kwhere." order by reg_date",$conn) or die(mysql_error());
        }
        else {
                $result=mysql_query("SELECT FROM_UNIXTIME( reg_date, '%Y%m' ),subject, no FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y%m') = '".$ym."'".$kwhere." order by reg_date",$conn) or die(mysql_error());
        }
}
elseif(!$ym) {
        $result=mysql_query("SELECT FROM_UNIXTIME( reg_date, '%Y%m' ), count(*) FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y') = '".$yy."'".$kwhere." GROUP BY FROM_UNIXTIME( reg_date, '%Y%m' ) ",$conn) or die(mysql_error());
}
else {
        $result=mysql_query("SELECT FROM_UNIXTIME( reg_date, '%Y%m' ),subject, no FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y%m') = '".$ym."'".$kwhere."",$conn) or die(mysql_error());
}

echo("<table cellpadding='0' cellspacing='0'><tr><td align=left valign=top>");
echo("<table border='1' cellpadding='0' cellspacing='0'><tr><td width=50><h5 align=center><a href=logbook.htm?board=$board&yy=$yy>년월</td><td width=350><h5 align=center>Count</td><td></td></tr>");

while($data=mysql_fetch_array($result)) {
        $data1 = $data[0];
        $data2 = $data[1];
        if(!$ym) {
                echo("<tr><td align=center><a href=logbook.htm?board=$board&ym=$data1>".$data1."</a></td><td align=center><a href=logbook.htm?board=$board&ym=$data1&kind=$kind>".$data2."</td></tr>");
                }
        else {
                $data3 = $data[2];
                echo("<tr><td align=center><a href=logbook.htm?board=$board&ym=$data1>".$data1."</a></td><td align=left><a href='zboard.php?id=".$board."&no=$data3'>".$data2."</a></td></tr>");
        }
}

// 총계
if(!$ym) {
        $result=mysql_query("SELECT count(*) FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y') = '".$yy."'".$kwhere."",$conn) or die(mysql_error());
}
else {
        $result=mysql_query("SELECT count(*) FROM zetyx_board_".$board." WHERE FROM_UNIXTIME( reg_date,'%Y%m') = '".$ym."'".$kwhere."",$conn) or die(mysql_error());
}
$data=mysql_fetch_array($result);

$data1 = $data[0];

echo("<tr><td align=center><a href=logbook.htm?board=$board&yy=$yy>합계</a></td><td align=center>총 ".$data1."권</td></tr>");
echo("</table></td>");

if($ord==1) {$ord1=" ORDER By zetyx_board_category_".$board.".name ";}
elseif($ord==2) {$ord1=" ORDER By cnt ";}
else {$ord1=" ORDER By zetyx_board_category_".$board.".no ";}

if($ord2>0) { $ord1 = $ord1." ASC"; $ord2=0;}
else { $ord1 = $ord1." DESC"; $ord2=1;}

// 카테고리별
if(!$ym) {
        $result=mysql_query("SELECT zetyx_board_category_".$board.".name, count(*) as cnt, zetyx_board_category_".$board.".no FROM zetyx_board_".$board.", zetyx_board_category_".$board." WHERE zetyx_board_".$board.".category = zetyx_board_category_".$board.".no and FROM_UNIXTIME( reg_date,'%Y') = '".$yy."'".$kwhere." GROUP BY zetyx_board_category_".$board.".name, zetyx_board_category_".$board.".no ".$ord1,$conn) or die(mysql_error());
}
else {
        $result=mysql_query("SELECT zetyx_board_category_".$board.".name, count(*) as cnt, zetyx_board_category_".$board.".no FROM zetyx_board_".$board.", zetyx_board_category_".$board." WHERE zetyx_board_".$board.".category = zetyx_board_category_".$board.".no and FROM_UNIXTIME( reg_date,'%Y%m') = '".$ym."'".$kwhere." GROUP BY zetyx_board_category_".$board.".name, zetyx_board_category_".$board.".no ".$ord1,$conn) or die(mysql_error());
}

echo("<td align=left valign=top><table border='1' cellpadding='0' cellspacing='0'><tr><td width=150><h5 align=center><a href=$surl&board=$board&ord=1&ord2=$ord2>구분</td><td width=50><h5 align=center><a href=$surl&board=$board&ord=2&ord2=$ord2>Count</td><td></td></tr>");

while($data=mysql_fetch_array($result)) {
        $data1 = $data[0];
        $data2 = $data[1];
        $data3 = $data[2];
        if(!$ym) {
                echo("<tr><td align=center><a href=logbook.htm?board=$board&yy=$yy&kind=$data3>".$data1."</a></td><td align=center><a href=logbook.htm?board=$board&yy=$yy&kind=$data3&vm=1>".$data2."</td></tr>");
                }
        else {
                $data3 = $data[2];
                echo("<tr><td align=center><a href=logbook.htm?board=$board&ym=$ym&kind=$data3>".$data1."</a></td><td align=center><a href=logbook.htm?board=$board&ym=$ym&kind=$data3&vm=1>".$data2."</a></td></tr>");
        }
}
echo("</table></td></tr></table>");
?>
 
반응형