"; if($_SESSION[zsPART]=='all') { // 소트 기준 시기 고르기 $sort_time=mysql_query("select distinct end from zspart where end>0 AND end < '".time()."' order by end DESC"); $srt_num=0; echo ""; $lastest_sql=mysql_query("select distinct reg_time from zsRank2 order by reg_time DESC limit 3"); while($lastest=mysql_fetch_array($lastest_sql)) { if ($_GET[sorttime]==$lastest[reg_time]) $slt="class='box0'"; else $slt=""; echo "최근".($srt_num+0)." "; $srt_num--; } echo ""; echo ""; // 마지막 점수 업데이트 $lastsorttime=mysql_fetch_array(mysql_query("select * from zsRank2 order by reg_time DESC limit 1")); // 랭크DB에서 가장 마지막 저장 시간 찾기 $nowupdate=mysql_query("select * from zsRank2 where reg_time='$lastsorttime[reg_time]' order by id_no"); // 랭크DB에서 마지막 저장 시간의 점수를 아이디 순서대로 가져오기. while($nowup=mysql_fetch_array($nowupdate)) { $cntchk=mysql_fetch_array(mysql_query("select * from zsmem where no='$nowup[id_no]'")); $sumpt=mysql_fetch_array(mysql_query("select sum((pt-xpt)*ratio) from zsdocu where to_mem='".$cntchk[no]."' AND checks IN (0, 1, 3, 4, 7, 9)")); $sumavgpt=mysql_fetch_array(mysql_query("select (sum((pt-xpt)*ratio)/".$cntchk[part_num].") from zsdocu where to_mem='".$cntchk[no]."' AND checks IN (0, 1, 3, 4, 7, 9)")); if($nowup[pt] <> $sumpt[0]) { mysql_query("update zsRank2 set pt='$sumpt[0]' where no='$nowup[no]'"); $change_pt=1; } if($nowup[pt] <> $sumavgpt[0]) mysql_query("update zsRank2 set pt_avg='$sumavgpt[0]' where no='$nowup[no]'"); } if($change_pt==1) { $sql=mysql_query("select * from zsRank2 where reg_time='".$lastsorttime[reg_time]."' order by pt DESC, id_no"); $ranking=0; $rr=0; $imsi=0; while($pt=mysql_fetch_array($sql)) { if($pt[pt]==$lastpt) { $ranking=$lastrank; $imsi++; } else { $ranking=$ranking+$imsi; $imsi=0; $ranking++; $lastpt=$pt[pt]; $lastrank=$ranking; } $ptpt="update zsRank2 set rank='".$ranking."' where id_no='".$pt[id_no]."' AND reg_time='".$lastsorttime[reg_time]."'"; mysql_query($ptpt); } $sql=mysql_query("select * from zsRank2 where reg_time='".$lastsorttime[reg_time]."' order by pt_avg DESC, id_no"); $ranking=0; $rr=0; $imsi=0; while($pt=mysql_fetch_array($sql)) { if($pt[pt_avg]==$lastpt) { $ranking=$lastrank; $imsi++; } else { $ranking=$ranking+$imsi; $imsi=0; $ranking++; $lastpt=$pt[pt_avg]; $lastrank=$ranking; } mysql_query("update zsRank2 set rank_avg='".$ranking."' where id_no='".$pt[id_no]."' AND reg_time='".$lastsorttime[reg_time]."'"); } } } echo "역대 1위 "; echo ""; if($_GET[od]=='pt') { $icon_pt="▼"; $icon_si="△"; $icon_avgpt="▽"; $loc_pt="background-color:#00f;color:#fff"; $loc_si=""; $loc_avgpt=""; } else if($_GET[od]=='si') { $icon_pt="▽"; $icon_si="▲"; $icon_avgpt="▽"; $loc_pt=""; $loc_si="background-color:#00f;color:#fff"; $loc_avgpt=""; } else if($_GET[od]=='log') { $icon_log="▼"; $loc_log="background-color:#00f;color:#fff"; } else if($_GET[od]=='avgpt' || !$_GET[od]) { $icon_pt="▽"; $icon_si="△"; $icon_avgpt="▼"; $loc_pt=""; $loc_si=""; $loc_avgpt="background-color:#00f;color:#fff"; } echo ""; echo ""; if($_SESSION[zsPART]=='all') { echo ""; // LOG 출력 (2024.03.06) echo ""; } echo " "; // 유효강좌수 계산 (2021.08.15) $sql=mysql_query("select * from zsmem where part not like '%all%'"); while($partnum_order=mysql_fetch_array($sql)){ $comma=substr_count($partnum_order[part], ",")+1; if(strstr($partnum_order[part], 'out')) $comma--; $zsPARTs=explode(',', $partnum_order[part]); /*foreach($zsPARTs as $item){ $part_not=mysql_fetch_array(mysql_query("select count(*) from zspart where used='0' AND detail='0' AND part='".$item."'")); if($part_not[0]) $comma--; }*/ $sql_comma="update zsmem set part_num='".$comma."' where no='".$partnum_order[no]."'"; //echo $sql_comma."
"; mysql_query($sql_comma); } if($_GET[od]=='pt') $orders="order by pt DESC"; else if($_GET[od]=='si') $orders="order by id_no ASC"; else if($_GET[od]=='log') $orders="order by log DESC"; else if(!$_GET[od] || $_GET[od]=='avgpt') $orders="order by pt_avg DESC"; $num=1; $num0=1; if($_GET[sorttime]) { $lasttime=mysql_fetch_array(mysql_query("select * from zsRank2 where reg_time<$_GET[sorttime] order by reg_time DESC limit 1")); //echo $_GET[sorttime]." : ".$lasttime[reg_time]."
"; //echo date("Ymd", $_GET[sorttime])." : ".date("Ymd", $lasttime[reg_time])."
"; } else { $lasttime=mysql_fetch_array(mysql_query("select * from zsRank2 order by reg_time DESC limit 1")); //echo "11"; } $sql_point="select * from zsRank2 where reg_time='".$lasttime[reg_time]."' ".$orders; // echo $sql_point."
"; $sql=mysql_query($sql_point); while($pt=mysql_fetch_array($sql)) { $zpt=$pt[pt]; $ptavg=$pt[pt_avg]; if(!$_GET[od] || $_GET[od]=='avgpt') { if($ptavg0!=$ptavg){ $ptavg0=$ptavg; $num0=$num; $num00=$num0; } else $num00="="; } if($_GET[od]=='pt') { if($pt0!=$zpt){ $pt0=$zpt; $num0=$num; $num00=$num0; } else $num00="="; } if($_SESSION[zsNO]==$pt[id_no]) $trstyle="style='background-color:skyblue'"; echo ""; $find_sn=mysql_fetch_array(mysql_query("select * from zsmem where no=$pt[id_no]")); if($_SESSION[zsPART]=='all' || $_SESSION[zsNO]==$pt[id_no]) { $sn=$find_sn[sn]; } else $sn="*******"; echo ""; $grade=substr($sn, 3,1); echo ""; if($_SESSION[zsPART]=='all') $title_name="title='".$find_sn[name]."' onclick=location.href='zsdata.php?zno=$pt[id_no]'"; if($_SESSION[zsNO]) { $pt_nick=$find_sn[nick]; } else { $rrr=mb_strlen($find_sn[nick], 'UTF-8')-2; if($rrr<1) $rrr=1; $pt_nick=mb_substr($find_sn[nick], 0, 1, 'UTF-8').str_repeat("#", $rrr).mb_substr($find_sn[nick], -1, 1, 'UTF-8'); } if(mb_strlen($pt_nick, "utf-8")>10) $pt_nick=mb_substr($pt_nick, 0,7,"utf-8")."..."; echo ""; $daynum=3; $recent_time=time()-(3600*24*$daynum); $ptnum=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and checks<>'2'")); $ptnum1=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and mem='".$pt[id_no]."' and checks='0'")); $ptnum1_1=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and mem='".$pt[id_no]."' and checks='0' and reg_time>'".$recent_time."'")); $ptnum2=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and mem<>'".$pt[id_no]."' and checks='0'")); $ptnum2_1=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and mem<>'".$pt[id_no]."' and checks='0' and reg_time>'".$recent_time."'")); $ptnum3=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and checks in (1, 3, 4)")); $ptnum3_1=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."'".$srttime." and checks in (1, 3, 4) and reg_time>'".$recent_time."'")); if($ptnum1_1[0]) $lastrecord1="font-weight:bold;color:green;"; if($ptnum2_1[0]) $lastrecord2="font-weight:bold;color:red;"; if($ptnum3_1[0]) $lastrecord3="font-weight:bold;color:blue;"; if($_SESSION[zsPART]=='all') { echo ""; } else { echo ""; } // 평균 포인트 출력 $daynum=3; $recent_time3=time()-(86400*$daynum); $recent_time=time()-86400; $recent_post3=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."' AND reg_time>'".$recent_time3."'")); $recent_post=mysql_fetch_array(mysql_query("select count(*) from zsdocu where to_mem='".$pt[id_no]."' AND reg_time>'".$recent_time."'")); $recent_post1=mysql_fetch_array(mysql_query("select * from zsdocu order by reg_time DESC limit 1")); $recent_post2=mysql_fetch_array(mysql_query("select * from zsdocu where to_mem='".$pt[id_no]."' order by reg_time DESC limit 1")); if($recent_post3[0]) { $fcolor="color:blue;"; $r_num="".$recent_post3[0].""; } if($recent_post[0]) { $fcolor="color:#1e90ff;font-weight:bold;"; $r_num="".$recent_post[0]."/".$r_num; } // 평균 점수 출력 echo ""; // 마스터 로그인 시 총점 출력 if($_SESSION[zsPART]=='all') { if($recent_post3[0]) $ptcolor="color:#00f;"; if($recent_post[0]) $ptcolor="color:#1e90ff;font-weight:bold;"; if($recent_post1[reg_time]==$recent_post2[reg_time]) $ptcolor="color:red;font-weight:bold;"; echo ""; } // LOG 나타내기 if($_SESSION[zsPART]=='all') { if($find_sn[log]>(time()-(86400*3))) $logcolor="color:red;font-weight:bold;"; else if($find_sn[log]>(time()-(86400*10))) $logcolor="color:blue;font-weight:bold;"; else if($find_sn[log]>(time()-(86400*30))) $logcolor="font-weight:bold;"; else $logcolor=""; echo ""; } echo " "; // 변수 초기화 $num++; $trstyle=""; $lastrecord1=""; $lastrecord2=""; $lastrecord3=""; $fcolor=""; $r_num=""; $ptcolor=""; } echo "
no. 학번 $icon_si 학년 이름 작성건수 (교사/학생/최종)zpt_avg $icon_avgptzpt $icon_ptlog
$num00$sn$grade$pt_nick"; $u_d1=mysql_fetch_array(mysql_query("select * from zsRank2 where id_no='".$pt[id_no]."' AND reg_time='".$lasttime[reg_time]."' order by reg_time DESC LIMIT 1")); // 최근 등수 $u_d2=mysql_fetch_array(mysql_query("select * from zsRank2 where id_no='".$pt[id_no]."' AND reg_time<'".$lasttime[reg_time]."' order by reg_time DESC LIMIT 1")); // 그전 등수 //echo $u_d2[rank]."|".$u_d1[rank]."|".$u_d2[rank_avg]."|".$u_d1[rank_avg]."|".$pt[id_no].""; if($_GET[od]=='pt') { if(!$u_d2[rank] || $u_d1[rank]==$u_d2[rank]) { echo " 〓"; } else if ($u_d1[rank] && $u_d1[rank]>$u_d2[rank]) { //echo " ".abs($u_d2[rank]-$u_d1[rank])."(".$u_d2[rank].", ".$u_d1[rank].")".""; echo " ".abs($u_d2[rank]-$u_d1[rank]).""; } else if ($u_d1[rank] && $u_d1[rank]<$u_d2[rank]) { // echo " ".abs($u_d2[rank]-$u_d1[rank])."(".$u_d2[rank].", ".$u_d1[rank].")".""; echo " ".abs($u_d2[rank]-$u_d1[rank]).""; } } else if(!$_GET[od] || $_GET[od]=='avgpt') { if(!$u_d2[rank_avg] || $u_d1[rank_avg]==$u_d2[rank_avg]) { echo " 〓"; } else if ($u_d1[rank_avg] && $u_d1[rank_avg]>$u_d2[rank_avg]) { //echo " ".abs($u_d2[rank_avg]-$u_d1[rank_avg])."(".$u_d2[rank_avg].", ".$u_d1[rank_avg].")".""; echo " ".abs($u_d2[rank_avg]-$u_d1[rank_avg]).""; } else if ($u_d1[rank_avg] && $u_d1[rank_avg]<$u_d2[rank_avg]) { //echo " ".abs($u_d2[rank_avg]-$u_d1[rank_avg])."(".$u_d2[rank_avg].", ".$u_d1[rank_avg].")".""; echo " ".abs($u_d2[rank_avg]-$u_d1[rank_avg]).""; } } echo "$ptnum[0] ("; if($ptnum2_1[0]) echo "$ptnum2_1[0]"; echo $ptnum2[0]; echo "/"; if($ptnum1_1[0]) echo "$ptnum1_1[0]"; echo $ptnum1[0]; echo "/"; if($ptnum3_1[0]) echo "$ptnum3_1[0]"; echo $ptnum3[0].")$ptnum[0] (".$ptnum2[0]."/".$ptnum1[0]."/".$ptnum3[0].")".number_format($ptavg); echo " ("; $lectnum=substr_count($find_sn[part], ",")+1; if(strstr($find_sn[part], 'out')) $lectnum--; echo $lectnum; echo "강좌)$r_num ".number_format($zpt); echo "".date("Ymd H:i:s", $find_sn[log]); echo "
"; $po3="select count(*) from zsdocu where reg_time>'".(time()-(86400*3))."' AND checks<>'2'"; $po3p="select count(distinct(to_mem)) from zsdocu where reg_time>'".(time()-(86400*3))."' AND checks<>'2'"; $po1="select count(*) from zsdocu where reg_time>'".(time()-(86400*1))."' AND checks<>'2'"; $po1p="select count(distinct(to_mem)) from zsdocu where reg_time>'".(time()-(86400*1))."' AND checks<>'2'"; $post_3=mysql_fetch_array(mysql_query($po3)); $post_3p=mysql_fetch_array(mysql_query($po3p)); $post_1=mysql_fetch_array(mysql_query($po1)); $post_1p=mysql_fetch_array(mysql_query($po1p)); $data3=$post_3[0]; // -$post_1[0]; $data3p=$post_3p[0]; // -$post_1[0]; $data1=$post_1[0]; $data1p=$post_1p[0]; echo ""; echo "BLUE : "; echo "최근 3일간 데이터 입력됨. (".$data3."건 / ".$data3p."명) // "; echo "dodgerblue : "; echo "최근 1일간 데이터 입력됨. (".$data1."건 / ".$data1p."명)"; include 'zcnt.php'; ?>