diff options
| author | Rodrigo Laiola GuimarĂ£es <rlaiola@users.noreply.github.com> | 2024-03-21 11:04:04 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-21 11:04:04 +0000 |
| commit | 4fbfe476f66cb81b56092312ba1238dffb375c92 (patch) | |
| tree | bbcd7d71f36cf18448a753c8c20695f54712bccb /src/fanswer.php | |
| parent | 9dc160c02e1ccc723adc84048427b1564302ca44 (diff) | |
| parent | d712c818ac131caf357363ffc52517d6f56fe754 (diff) | |
| download | boca-4fbfe476f66cb81b56092312ba1238dffb375c92.tar.gz boca-4fbfe476f66cb81b56092312ba1238dffb375c92.zip | |
Merge branch 'cassiopc:master' into fix_username_header
Diffstat (limited to 'src/fanswer.php')
| -rw-r--r-- | src/fanswer.php | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/fanswer.php b/src/fanswer.php index 8f2c95b..17f42a0 100644 --- a/src/fanswer.php +++ b/src/fanswer.php @@ -30,6 +30,7 @@ CREATE TABLE \"answertable\" ( \"contestnumber\" int4 NOT NULL, -- (id do concurso) \"answernumber\" int4 NOT NULL, -- (id da reposta) \"runanswer\" varchar(50) NOT NULL, -- (reposta dada no julgamento) +\"shortname\" varchar(50) DEFAULT '' NOT NULL, -- () \"yes\" bool DEFAULT 'f' NOT NULL, -- (flag para indicar se conta ponto) \"fake\" bool DEFAULT 'f' NOT NULL, -- (flag para indicar se eh resposta valida) \"updatetime\" int4 DEFAULT EXTRACT(EPOCH FROM now()) NOT NULL, -- (indica a ultima atualizacao no registro) @@ -49,7 +50,7 @@ CONSTRAINT \"contest_fk\" FOREIGN KEY (\"contestnumber\") REFERENCES \"contestta //devolve um array, onde cada linha tem os atributos number (numero da resposta) e desc (descricao da resposta) function DBGetAnswers($contest) { $c = DBConnect(); - $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.yes as yes, a.fake as fake ". + $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.shortname as short, a.yes as yes, a.fake as fake ". "from answertable as a where a.contestnumber=$contest and a.runanswer !~ '(DEL)' order by a.answernumber", "DBGetAnswers(get answers)"); $n = DBnlines($r); $a = array(); @@ -58,6 +59,18 @@ function DBGetAnswers($contest) { return $a; } +function DBGetAnswer($contest, $number) { + $c = DBConnect(); + $r = DBExec($c, "select distinct a.answernumber as number, a.runanswer as desc, a.shortname as short, a.yes as yes, a.fake as fake ". + "from answertable as a where a.contestnumber=$contest and a.runanswer !~ '(DEL)' order by a.answernumber", "DBGetAnswer(only 1 answer)"); + $n = DBnlines($r); + if ($n != 1) { + return null; + } + $a = DBRow($r,0); + return $a; +} + //recebe o numero do contest e o numero da resposta e remove-a caso seu tipo nao seja fake function DBDeleteAnswer($contest,$param,$c=null) { $ac=array('number'); @@ -98,8 +111,9 @@ function DBNewAnswer($contest, $param, $c=null) { } if(isset($param['answernumber']) && !isset($param['number'])) $param['number']=$param['answernumber']; if(isset($param['runanswer']) && !isset($param['name'])) $param['name']=$param['runanswer']; + if(isset($param['shortname']) && !isset($param['short'])) $param['short']=$param['shortname']; - $ac=array('number','name','yes'); + $ac=array('number','name','yes', 'short'); $type['number']=1; foreach($ac as $key) { if(!isset($param[$key])) { @@ -131,15 +145,15 @@ function DBNewAnswer($contest, $param, $c=null) { $ret=1; if ($n == 0) { $ret=2; - DBExec($c, "insert into answertable (contestnumber, answernumber, runanswer, yes, updatetime) values " . - "($contest, $number, '$name', '$y', $t)", "DBNewAnswer(insert answer)"); + DBExec($c, "insert into answertable (contestnumber, answernumber, runanswer, shortname, yes, updatetime) values " . + "($contest, $number, '$name', '$short', '$y', $t)", "DBNewAnswer(insert answer)"); if($cw) DBExec($c, "commit work", "DBNewAnswer(commit)"); LOGLevel("Answer $number inserted (contest=$contest,user=".$_SESSION["usertable"]["username"]."/".$_SESSION["usertable"]["usersitenumber"].")", 2); } else { $lr = DBRow($r,0); if($updatetime > $lr['updatetime']) { $ret=2; - DBExec($c, "update answertable set runanswer='$name', yes='$y', updatetime=". $updatetime . " where ". + DBExec($c, "update answertable set runanswer='$name', yes='$y', shortname='$short', updatetime=". $updatetime . " where ". "contestnumber=$contest and answernumber=$number and fake='f'", "DBNewAnswer(update answer)"); if($cw) DBExec($c, "commit work", "DBNewAnswer(commit)"); LOGLevel("Answer $number updated (contest=$contest,user=".$_SESSION["usertable"]["username"]."/".$_SESSION["usertable"]["usersitenumber"].")", 2); |