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 <lfleisc...@archlinux.org>
---
 web/html/packages.php    | 27 ++++++++++++++-------------
 web/lib/pkgfuncs.inc.php | 36 ------------------------------------
 2 files changed, 14 insertions(+), 49 deletions(-)

diff --git a/web/html/packages.php b/web/html/packages.php
index bf3daf8..38a2e29 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 d3cad12..62bea65 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
-- 
2.5.2

Reply via email to