• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 40, 文章 - 0, 評論 - 19, 引用 - 0
            數據加載中……

            contest_standing

            http://www.w3school.com.cn/php/index.asp
            這里的函數查詢很好
            array相關函數str相關函數很有用~
            PHP5.1以上時區需要設置:

            ini_set('date.timezone','Asia/Shanghai');
            <?php
                
              
            include_once "../conn.php";
                
            $cid = $_GET['cid'];
            if (db_contest_exist($cid)) {
                
            ini_set('date.timezone','Asia/Shanghai');
                
            $nowtime=time();
                
            list($locktu,$sttimeu,$fitimeu,$t= @mysql_fetch_array(mysql_query("SELECT unix_timestamp(lock_board_time),unix_timestamp(start_time),unix_timestamp(end_time),unix_timestamp(board_make) FROM contest WHERE cid = '$cid'"));
                
            $scr = "contest_standing_".$cid.".html";
                
            $pastsec=$nowtime-$t;
                
            if ($pastsec<$srefresh&&!($nowtime>$locktu&&$t<$locktu)&&!($nowtime>$fitimeu&&$t<$fitimeu))//60秒更新一次
              {
                   
            Header("Location: contest_standing_".$cid.".html");
                }
            else{
                
            $maketime=date("Y-m-d G:i:s",$nowtime);
                
            $sql_update = "update contest set board_make='$maketime' where cid = '$cid'";
                
            $que_update = mysql_query($sql_update);


                
            ob_start(); //打開緩沖區
                include("cheader.php");
                
            include("cmenu.php");
                
                
            function get_time ($unix_time) {
                    
            $first = floor($unix_time/3600);
                    
            $mid = floor( ($unix_time-$first*3600)/60 );
                    
            $last = $unix_time%60;
                    
            return $first.":".$mid.":".$last;
                }

            //    $cid = $_GET['cid'];
                $num_of_problem = 0//題目個數

                
            $sql = " SELECT * FROM `contest_problem` WHERE `cid` = ".$cid;  //創建label和題目的對應
                $res = mysql_query($sql);//執行mysql查詢

                
            $map2 = array();
                
            while($row = mysql_fetch_array($res)){
                    
            $map[$row[pid]] =$row[lable];
                    
            $map2[$row[lable]] = $row[cpid];
                    
            $num_of_problem++;
                }
                
            //print_r($map);

                
            $sql = "SELECT * FROM `contest` WHERE `cid` =".$cid;
                
            $res = mysql_query($sql);//執行mysql查詢
                $info_of_contest = mysql_fetch_array($res);
            /*
             * 比賽信息
             * [0] =>[cid]
             * [1] =>[title]
             * [2] =>[description]
             * [3] =>[isprivate]
             * [4] =>[start_time]
             * [5] =>[end_time]
             * [6] =>[lock_board_time]
             * [7] =>[hide_others]
             * [8] => [board_make]
             * [9] =>[isvirtual]
             * [10] => [owner]
             * [11] => [report]
             * 
            */
                  
            $basetime = strtotime($info_of_contest[4]);


                
            // 查詢 并存入二維表 OK
                //    聯合查詢,帶出名字

                $sql = " SELECT status.pid,status.result,status.time_submit,status.username,user.nickname FROM status,user WHERE `status`.`contest_belong` =".$cid." AND status.username=user.username" ;
                
            $res = mysql_query($sql);//執行mysql查詢

                
            $ary = array();//初始化二維表
                while($row = mysql_fetch_array($res) ){
                    
            $id = array_push($ary,$row); //$id 為行數
                }//將查詢結果存入



                // 掃描一遍查詢結果 生成名稱序二維表

                $Name_ary = array(); //初始化名稱序二維表

                
            for($i = 0 ; $i < $id ; $i++){
                    
            $k = 0;
                    
            $get = 0;
                    
            for($j = 0 ; $j < $iid ; $j++){
                        
            ifin_array($ary[$i][username],$Name_ary[$j],true) ){
                            
            $k = 1;
                            
            $get = $j;
                            
            break;
                        }
                    }
                    
            if($k == 1){
                        
            //echo "Yes<br/>";
                        if($ary[$i][result] == "Accepted" ){
                                
            if$Name_ary[$get][$map[$ary[$i][pid]]]!=-1 ){
                                    
            continue;
                                }
                                
            else{
                                    
            $Name_ary[$get][$map[$ary[$i][pid]]] = strtotime($ary[$i][time_submit])-$basetime;
                                    
            $Name_ary[$get][5+= strtotime($ary[$i][time_submit])-$basetime;
                                }
                        }
                        
            else{
                            
            if$Name_ary[$get][$map[$ary[$i][pid]]] == -1 ){
                                
            $Name_ary[$get][$map[$ary[$i][pid]]._wci]--;
                            }
                        }
                    }
                    
            else{
                        
            //echo "No<br/>";
                        $iid = array_push($Name_ary,$ary[$i]);
                        
            if($ary[$i][result] == "Accepted" ){
                                
            array_push($Name_ary[$iid-1],strtotime($ary[$i][time_submit])-$basetime);
                                
            foreach ($map as $value){
                                    
            $Name_ary[$iid-1][$value= -1;
                                    
            $Name_ary[$iid-1][$value._wci] = 0;
                                }
                                
            $Name_ary[$iid-1][$map[$ary[$i][pid]]] = strtotime($ary[$i][time_submit])-$basetime;
                                
            $Name_ary[$iid-1][$map[$ary[$i][pid]]._wci] = 0;
                        }
                        
            else{
                                
            array_push($Name_ary[$iid-1],0);
                                
            foreach ($map as $value){
                                    
            $Name_ary[$iid-1][$value= -1;
                                    
            $Name_ary[$iid-1][$value._wci] = 0;
                                }
                                
            $Name_ary[$iid-1][$map[$ary[$i][pid]]] = -1;
                                
            $Name_ary[$iid-1][$map[$ary[$i][pid]]._wci] = -1;
                        }
                    }
                }

            // 掃描計算罰時與題數 然后排序
                for($i = 0 ; $i < $iid ; $i++){
                    
            $fs = 0;
                    
            $Name_ary[$i][sum] = 0;
                    
            foreach ($map as $value){
                        
            if$Name_ary[$i][$value]!=-1 ){
                            
            $Name_ary[$i][sum]++;
                            
            $fs -= 20*60*$Name_ary[$i][$value._wci];
                        }
                    }
                    
            $Name_ary[$i][5+= $fs;
                }
                
            for($i = 0 ; $i < $iid ; $i++ ){
                    
            for($j = 0 ; $j < $iid ; $j++ ){
                        
            if($Name_ary[$i][sum] > $Name_ary[$j][sum] ){
                            
            $temp = array();
                            
            $temp = $Name_ary[$i];
                            
            $Name_ary[$i= $Name_ary[$j];
                            
            $Name_ary[$j= $temp;
                        }
                        
            else if($Name_ary[$i][sum] == $Name_ary[$j][sum]){
                            
            if($Name_ary[$i][5]<$Name_ary[$j][5]){
                                
            $temp = array();
                                
            $temp = $Name_ary[$i];
                                
            $Name_ary[$i= $Name_ary[$j];
                                
            $Name_ary[$j= $temp;
                            }
                        }
                    }
                }


            // 顯示
                echo "<table width='98%'>";
                
            echo "<tr>";
                
            echo     //"<td>pid</td>" . //pid
                          // "<td>result</td>" . //result
                          // "<td>time_submit</td>".//time_submit

                           "<th>Rank</th>".//username
                           "<th>Nickname</th>".//nickname
                           "<th>Accepts</th>";//nickname
                           

                
            foreach ($map as $value)
                {
                        
            echo "<th><a href=../contest_problem_show.php?cpid=".$map2[$value].">".$value."</a></th>";
                }
                
            echo "<th>Penalty</th>";//Penalty
                echo "</tr>";
                
            for($i = 0 ; $i < $iid ; $i++){
                
            //    print_r($Name_ary[$i]);

                    
            $nick = strip_tags(change_out($Name_ary[$i][4]));
                    
            if($nick == '') {
                        
            $nick = "你太懶了";
                    }
                    
            else if(strlen($nick)>21 ){
                        
            $nick = substr($nick,0,21)."";
                    }
                    
            echo "<tr>";
                      
            echo //"<th>".$Name_ary[$i][0]."</th>" . //pid
                          // "<th>".$Name_ary[$i][1]."</th>" . //result
                          // "<th>".$Name_ary[$i][2]."</th>".//time_submit

                           "<th>".($i+1)."</th>".//username
                           "<th><a alt='".$Name_ary[$i][username]."' href=../userinfo.php?name=".$Name_ary[$i][username].">".$nick."</a></th>".//nickname
                           "<th>".$Name_ary[$i][sum]."</th>";//ac_num
                          

                      
            foreach ($map as $value)
                    {
                        
            if($Name_ary[$i][$value!= -1 && array_key_exists($value,$Name_ary[$i]))
                            
            echo "<th>".get_time($Name_ary[$i][$value])."(".$Name_ary[$i][$value._wci].")</th>";
                        
            else if($Name_ary[$i][$value._wci])
                            
            echo "<th>(".$Name_ary[$i][$value._wci].")</th>";
                            
            else{
                                
            echo "<th></th>";
                            }
                    }
                     
            echo "<th>".get_time($Name_ary[$i][5])."</th>";//Penalty
                    echo "</tr>";
                }
                
            echo "</table>";
                
            include("footer.php");

                
            $content=ob_get_contents(); //得到緩沖區的內容
                if (!function_exists("file_put_contents"))
                {
                    
            function file_put_contents($fn,$fs)
                    {
                       
            $fp=fopen($fn,"w+");
                       
            fputs($fp,$fs);
                       
            fclose($fp);
                    }
                }
                
            file_put_contents("contest_standing_".$cid.".html",$content);
            }
                
                }
                
            else {
                    
            include("cheader.php");
                    
            include("cmenu.php");
                    
            echo "<center><p class=warn>Invalid Contest!</p></center>";
                    
            include("footer.php");
                }
            ?>

            posted on 2010-04-09 17:54 hadn't 閱讀(120) 評論(0)  編輯 收藏 引用

            久久93精品国产91久久综合| 久久精品女人天堂AV麻| 日韩十八禁一区二区久久| 亚洲精品无码久久久久sm| 国産精品久久久久久久| 亚洲精品国精品久久99热| 99久久精品费精品国产| 久久精品中文闷骚内射| 久久综合视频网站| 国产一区二区三精品久久久无广告| 久久国产综合精品五月天| 一本一本久久A久久综合精品| 亚洲伊人久久综合中文成人网| 亚洲AV无码久久精品成人| 久久国产乱子精品免费女| 久久99国产亚洲高清观看首页| 久久强奷乱码老熟女网站| WWW婷婷AV久久久影片| 国产精品久久国产精麻豆99网站| 亚洲精品乱码久久久久66| 办公室久久精品| 久久WWW免费人成—看片| 久久香综合精品久久伊人| 99久久精品国内| 久久久久久久波多野结衣高潮| 久久这里都是精品| 久久夜色精品国产亚洲| 亚洲成色www久久网站夜月 | 开心久久婷婷综合中文字幕| 久久久久久精品久久久久| 久久久久亚洲av成人无码电影| 久久亚洲国产午夜精品理论片| 青青青青久久精品国产| 久久国产亚洲精品无码| 男女久久久国产一区二区三区| 狠狠色综合网站久久久久久久高清 | 996久久国产精品线观看| 久久影院综合精品| 久久发布国产伦子伦精品| 精品久久777| 欧美一区二区精品久久|