diff options
Diffstat (limited to 'web/user_get.php')
-rw-r--r-- | web/user_get.php | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/web/user_get.php b/web/user_get.php new file mode 100644 index 0000000..85b0127 --- /dev/null +++ b/web/user_get.php @@ -0,0 +1,65 @@ +<?php +require_once('common.php'); + +$userid = intval($_POST['userid']); + +if(gettype($userid) != 'integer' || $userid < 1){ + exit('Eerror'); +} + +$sqlc = pg_connect('host=localhost port=5432 dbname='.DB_NAME.' user='.DB_USER.' password='.DB_PASSWORD); + +$userid = pg_escape_string($userid); +$sqlr = pg_query_params($sqlc,'SELECT * FROM "user" WHERE "userid"=$1 LIMIT 1;', + array($userid)); + +if(($usero = pg_fetch_object($sqlr)) == null){ + pg_free_result($sqlr); + pg_close($sqlc); + exit('Eerror'); +} +pg_free_result($sqlr); + +$sqlr = pg_query_params($sqlc,'SELECT COUNT(DISTINCT "proid") FROM "submit" WHERE "userid"=$1 AND "result"=0;', + array($userid)); +$acceptcount = pg_fetch_row($sqlr)[0]; +pg_free_result($sqlr); + +$sqlr = pg_query_params($sqlc,'SELECT COUNT(DISTINCT "proid") FROM "submit" WHERE "userid"=$1;', + array($userid)); +$trycount = pg_fetch_row($sqlr)[0]; +pg_free_result($sqlr); + +$sqlr = pg_query_params($sqlc,'SELECT COUNT("proid") FROM "submit" WHERE "userid"=$1;', + array($userid)); +$submitcount = pg_fetch_row($sqlr)[0]; +pg_free_result($sqlr); + +$userinfo = array( + 'userid' => $usero->userid, + 'username' => $usero->username, + 'nickname' => $usero->nickname, + 'headimg' => $usero->headimg, + 'aboutme' => $usero->aboutme, + 'acceptcount' => $acceptcount, + 'submitcount' => $submitcount, + 'trycount' => $trycount); + +$sqlr = pg_query_params($sqlc,'SELECT "proid",MAX("sumscore"/"summaxscore") AS "rate" FROM "submit" WHERE "userid"=$1 AND "result"<>100 GROUP BY "proid" ORDER BY "proid";', + array($userid)); + +$prolist = array(); +while($sqlo = pg_fetch_object($sqlr)){ + $prolist[] = array( + 'proid' => $sqlo->proid, + 'rate' => $sqlo->rate * 100); +} +pg_free_result($sqlr); + +pg_close($sqlc); + +echo json_encode(array( + 'userinfo' => $userinfo, + 'prolist' => $prolist +)); +?> |