=4 GROUP BY problem_id ";
$result = pdo_query($sql,$_SESSION[$OJ_NAME.'_'.'user_id']);
foreach ($result as $row){
$sub_arr[$row['problem_id']] = true;
if($row['result'] == 4) $acc_arr[$row['problem_id']] = true;
}
}
}else{ //没有登录的用户按Guest处理
$user_id="Guest";
$show_title="HelloWorld!";
}
$sql="select * from problem p inner join (
select distinct problem_id,contest_id from solution where result!=4 and user_id=? and problem_id not in
(select distinct problem_id from solution where result=4 and user_id=?)
) f on p.problem_id=f.problem_id ";
$result=pdo_query($sql,$user_id,$user_id); // 查找做了但是没做对的题
$cnt = 0;
$view_problemset = Array(); //用于传递查询结果给显示页的二维数组
$i = 0;
foreach ($result as $row) {
$view_problemset[$i] = Array(); //第$i行的数组初始化
if (isset($sub_arr[$row['problem_id']])) {
if (isset($acc_arr[$row['problem_id']]))
$view_problemset[$i][0] = "
Y
";
else
$view_problemset[$i][0] = "N
";
}
else {
$view_problemset[$i][0] = "
";
}
$category = array();
$cate = explode(" ",$row['source']); //分类标签
foreach($cate as $cat){
$cat=trim($cat);
if(mb_ereg("^http",$cat)){
$cat=get_domain($cat); // 标签是URL地址的显示成域名,get_domain在curl.php里
}
array_push($category,trim($cat));
}
$view_problemset[$i][1] = "".$row['problem_id']."
";
$view_problemset[$i][2] = "";;
$view_problemset[$i][3] = "";
foreach ($category as $cat) {
if(trim($cat)==""||trim($cat)==" ")
continue;
$hash_num = hexdec(substr(md5($cat),0,7));
$label_theme = $color_theme[$hash_num%count($color_theme)]; //$color_theme 在 const.inc.php 里
if ($label_theme=="")
$label_theme = "default";
$view_problemset[$i][3] .= "
".mb_substr($cat,0,10,'utf8')." ";
}
$view_problemset[$i][3] .= "
";
$view_problemset[$i][4] = "";
$view_problemset[$i][5] = "";
$i++;
}
$mycontests=$wheremy="";
if (isset($_SESSION[$OJ_NAME.'_user_id'])) {
$sql = "select distinct contest_id from solution where contest_id>0 and user_id=?";
$result = pdo_query($sql,$_SESSION[$OJ_NAME.'_user_id']); //有提交记录的比赛
foreach ($result as $row) {
$mycontests .= ",".$row[0];
}
$len = mb_strlen($OJ_NAME.'_');
$user_id = $_SESSION[ $OJ_NAME . '_' . 'user_id' ];
if(!empty($user_id)){
// 已登录的
$sql = "SELECT * FROM `privilege` WHERE `user_id`=?";
$result = pdo_query( $sql, $user_id );
// 刷新各种权限
foreach ( $result as $row ){
if(isset($row[ 'valuestr' ])){
$_SESSION[ $OJ_NAME . '_' . $row[ 'rightstr' ] ] = $row[ 'valuestr' ];
}else {
$_SESSION[ $OJ_NAME . '_' . $row[ 'rightstr' ] ] = true;
}
}
if(isset($_SESSION[ $OJ_NAME . '_vip' ])) { // VIP mark can access all [VIP] marked contest
$sql="select contest_id from contest where title like '%[VIP]%'";
$result=pdo_query($sql);
foreach ($result as $row){
$_SESSION[ $OJ_NAME . '_c' .$row['contest_id'] ] = true;
}
};
}
foreach ($_SESSION as $key => $value) { //有权限的比赛
if ((mb_substr($key,$len,1)=='m' || mb_substr($key,$len,1)=='c') && intval(mb_substr($key,$len+1))>0) {
//echo substr($key,1)."
";
$mycontests .= ",".intval(mb_substr($key,$len+1));
}
}
//echo "=====>$mycontests<====";
if (!empty($mycontests)){
$mycontests=substr($mycontests,1);
$wheremy=" and contest_id in ($mycontests) ";
}
$wheremy.= " and start_time < now() and end_time > now() "; //运行中的比赛
}
$sql = "SELECT * FROM contest WHERE contest.defunct='N' $wheremy ORDER BY contest_id DESC";
//echo htmlentities($sql);
$result = pdo_query($sql);
$view_contest=array();
foreach ($result as $row) {
$view_contest[$i][0] = $row['contest_id'];
if (trim($row['title'])=="")
$row['title'] = $MSG_CONTEST.$row['contest_id'];
$view_contest[$i][1] = "".$row['title']."";
$start_time = strtotime($row['start_time']);
$end_time = strtotime($row['end_time']);
$now = time();
$length = $end_time-$start_time;
$left = $end_time-$now;
$view_contest[$i][2] = $row['start_time']." ";
$view_contest[$i][2] .= "$MSG_LeftTime"." ".intval($left/60)."$MSG_MINUTES";
$private = intval($row['private']);
if ($private==0)
$view_contest[$i][4] = "$MSG_Public";
else
$view_contest[$i][5] = "$MSG_Private";
$view_contest[$i][6] = $row['user_id'];
$i++;
}
require("template/".$OJ_TEMPLATE."/".basename(__FILE__));