summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2015-09-18 08:02:33 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2015-09-18 08:03:56 +0200
commit9cae17ff7c4eeb7af66e06ba38de3b64d08dec2f (patch)
tree20bcb5a4aecc915bca4d9ace0c69671a9daddcd3
parent0dd27a86b1bceaa01d406e4b85139acbd8c885ab (diff)
downloadaur-9cae17ff7c4eeb7af66e06ba38de3b64d08dec2f.tar.gz
aur-9cae17ff7c4eeb7af66e06ba38de3b64d08dec2f.tar.xz
Extract package name from details
When requesting package details, instead of performing another SQL query to obtain the package name, extract the name from the result of the package details query. Also, drop pkg_name_from_id() which is no longer needed after this optimization. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rw-r--r--web/html/packages.php27
-rw-r--r--web/lib/pkgfuncs.inc.php36
2 files changed, 14 insertions, 49 deletions
diff --git a/web/html/packages.php b/web/html/packages.php
index bf3daf88..38a2e296 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -11,19 +11,25 @@ check_sid(); # see if they're still logged in
if (!isset($pkgid) || !isset($pkgname)) {
if (isset($_GET['ID'])) {
$pkgid = intval($_GET['ID']);
- $pkgname = pkg_name_from_id($_GET['ID']);
} else if (isset($_GET['N'])) {
$pkgid = pkg_from_name($_GET['N']);
- $pkgname = $_GET['N'];
} else {
- unset($pkgid, $pkgname);
+ unset($pkgid);
}
+}
- if (isset($pkgid) && ($pkgid == 0 || $pkgid == NULL || $pkgname == NULL)) {
- header("HTTP/1.0 404 Not Found");
- include "./404.php";
- return;
- }
+$details = array();
+if (isset($pkgid)) {
+ $details = pkg_get_details($pkgid);
+ $pkgname = $details['Name'];
+} else {
+ unset($pkgname);
+}
+
+if (isset($pkgid) && ($pkgid == 0 || $pkgid == NULL || $pkgname == NULL)) {
+ header("HTTP/1.0 404 Not Found");
+ include "./404.php";
+ return;
}
# Set the title to the current query or package name
@@ -35,11 +41,6 @@ if (isset($pkgname)) {
$title = __("Packages");
}
-$details = array();
-if (isset($pkgname)) {
- $details = pkg_get_details($pkgid);
-}
-
html_header($title, $details);
?>
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index d3cad12f..62bea652 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -480,42 +480,6 @@ function pkg_sources($pkgid) {
}
/**
- * Determine package names from package IDs
- *
- * @param string|array $pkgids The package IDs to get names for
- *
- * @return array|string All names if multiple package IDs, otherwise package name
- */
-function pkg_name_from_id($pkgids) {
- if (is_array($pkgids)) {
- $pkgids = sanitize_ids($pkgids);
- $names = array();
- $dbh = DB::connect();
- $q = "SELECT Name FROM Packages WHERE ID IN (";
- $q.= implode(",", $pkgids) . ")";
- $result = $dbh->query($q);
- if ($result) {
- while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
- $names[] = $row['Name'];
- }
- }
- return $names;
- }
- elseif ($pkgids > 0) {
- $dbh = DB::connect();
- $q = "SELECT Name FROM Packages WHERE ID = " . $pkgids;
- $result = $dbh->query($q);
- if ($result) {
- $name = $result->fetch(PDO::FETCH_NUM);
- }
- return $name[0];
- }
- else {
- return NULL;
- }
-}
-
-/**
* Get the package details
*
* @param string $id The package ID to get description for