=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] = "
".$row['title']."
";; $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] = "
".$row['accepted']."
"; $view_problemset[$i][5] = "
".$row['submit']."
"; $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__));