diff options
author | Dan McGee <dan@archlinux.org> | 2012-05-02 16:14:01 -0500 |
---|---|---|
committer | Lukas Fleischer <archlinux@cryptocrack.de> | 2012-05-06 12:12:51 +0200 |
commit | 97085daadcbc8b1ae1a01cd777605f66464a02ea (patch) | |
tree | b63f16334168cd3024897cdcb4a52a648b70985d | |
parent | e9d8e9b8c074421d15103fd66112dea78800e72a (diff) |
user_table optimization
Rather than looking up by username, it makes more sense to look the
stats up by user ID to reduce the number of needed joins.
Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
-rw-r--r-- | web/html/index.php | 4 | ||||
-rw-r--r-- | web/lib/stats.inc.php | 11 |
2 files changed, 7 insertions, 8 deletions
diff --git a/web/html/index.php b/web/html/index.php index 0d513d3..21de99d 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -58,8 +58,8 @@ echo __( <td class='boxSoft' valign='top'> <?php if (!empty($_COOKIE["AURSID"])) { - $user = username_from_sid($_COOKIE["AURSID"]); - user_table($user, $dbh); + $userid = uid_from_sid($_COOKIE["AURSID"]); + user_table($userid, $dbh); echo '<br />'; } diff --git a/web/lib/stats.inc.php b/web/lib/stats.inc.php index 01e6700..2828dc9 100644 --- a/web/lib/stats.inc.php +++ b/web/lib/stats.inc.php @@ -17,17 +17,16 @@ function updates_table($dbh) { include('stats/updates_table.php'); } -function user_table($user, $dbh) { - $escuser = db_escape_string($user); - $base_q = "SELECT count(*) FROM Packages,Users WHERE Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'"; +function user_table($userid, $dbh) { + $base_q = "SELECT count(*) FROM Packages WHERE Packages.MaintainerUID = " . $userid; $maintainer_unsupported_count = db_cache_value($base_q, $dbh, - 'user_unsupported_count:' . $escuser); + 'user_unsupported_count:' . $userid); - $q = "SELECT count(*) FROM Packages,Users WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'"; + $q = "SELECT count(*) FROM Packages WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = " . $userid; $flagged_outdated = db_cache_value($q, $dbh, - 'user_flagged_outdated:' . $escuser); + 'user_flagged_outdated:' . $userid); # If the user is a TU calculate the number of the packages $atype = account_from_sid($_COOKIE["AURSID"]); |