mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Split package search query into parts
No functional change here; we should be rebuilding the same query at the end of the process. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
80401c6afc
commit
2cfcddf24e
1 changed files with 20 additions and 20 deletions
|
@ -434,32 +434,32 @@ function pkg_search_page($SID="") {
|
||||||
|
|
||||||
// build the package search query
|
// build the package search query
|
||||||
//
|
//
|
||||||
$q = "SELECT SQL_CALC_FOUND_ROWS ";
|
$q_select = "SELECT SQL_CALC_FOUND_ROWS ";
|
||||||
if ($SID) {
|
if ($SID) {
|
||||||
$q .= "CommentNotify.UserID AS Notify,
|
$q_select .= "CommentNotify.UserID AS Notify,
|
||||||
PackageVotes.UsersID AS Voted, ";
|
PackageVotes.UsersID AS Voted, ";
|
||||||
}
|
}
|
||||||
$q .= "Users.Username AS Maintainer,
|
$q_select .= "Users.Username AS Maintainer,
|
||||||
PackageCategories.Category,
|
PackageCategories.Category,
|
||||||
Packages.Name, Packages.Version, Packages.Description, Packages.NumVotes,
|
Packages.Name, Packages.Version, Packages.Description, Packages.NumVotes,
|
||||||
Packages.ID, Packages.OutOfDateTS
|
Packages.ID, Packages.OutOfDateTS ";
|
||||||
|
|
||||||
FROM Packages
|
$q_from = "FROM Packages
|
||||||
LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID) ";
|
LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID) ";
|
||||||
if ($SID) {
|
if ($SID) {
|
||||||
$q .= "LEFT JOIN PackageVotes
|
$q_from .= "LEFT JOIN PackageVotes
|
||||||
ON (Packages.ID = PackageVotes.PackageID AND PackageVotes.UsersID = $myuid)
|
ON (Packages.ID = PackageVotes.PackageID AND PackageVotes.UsersID = $myuid)
|
||||||
LEFT JOIN CommentNotify
|
LEFT JOIN CommentNotify
|
||||||
ON (Packages.ID = CommentNotify.PkgID AND CommentNotify.UserID = $myuid) ";
|
ON (Packages.ID = CommentNotify.PkgID AND CommentNotify.UserID = $myuid) ";
|
||||||
}
|
}
|
||||||
$q .= "LEFT JOIN PackageCategories
|
$q_from .= "LEFT JOIN PackageCategories
|
||||||
ON (Packages.CategoryID = PackageCategories.ID)
|
ON (Packages.CategoryID = PackageCategories.ID) ";
|
||||||
WHERE Packages.DummyPkg = 0 ";
|
|
||||||
|
|
||||||
|
$q_where = "WHERE Packages.DummyPkg = 0 ";
|
||||||
// TODO: possibly do string matching on category
|
// TODO: possibly do string matching on category
|
||||||
// to make request variable values more sensible
|
// to make request variable values more sensible
|
||||||
if (isset($_GET["C"]) && intval($_GET["C"])) {
|
if (isset($_GET["C"]) && intval($_GET["C"])) {
|
||||||
$q.= "AND Packages.CategoryID = ".intval($_GET["C"])." ";
|
$q_where .= "AND Packages.CategoryID = ".intval($_GET["C"])." ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_GET['K'])) {
|
if (isset($_GET['K'])) {
|
||||||
|
@ -467,33 +467,33 @@ function pkg_search_page($SID="") {
|
||||||
|
|
||||||
# Search by maintainer
|
# Search by maintainer
|
||||||
if (isset($_GET["SeB"]) && $_GET["SeB"] == "m") {
|
if (isset($_GET["SeB"]) && $_GET["SeB"] == "m") {
|
||||||
$q.= "AND Users.Username = '".$_GET['K']."' ";
|
$q_where .= "AND Users.Username = '".$_GET['K']."' ";
|
||||||
}
|
}
|
||||||
# Search by submitter
|
# Search by submitter
|
||||||
elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "s") {
|
elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "s") {
|
||||||
$q.= "AND SubmitterUID = ".uid_from_username($_GET['K'])." ";
|
$q_where .= "AND SubmitterUID = ".uid_from_username($_GET['K'])." ";
|
||||||
# Search by name
|
# Search by name
|
||||||
}
|
}
|
||||||
elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "n") {
|
elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "n") {
|
||||||
$q.= "AND (Name LIKE '%".$_GET['K']."%') ";
|
$q_where .= "AND (Name LIKE '%".$_GET['K']."%') ";
|
||||||
}
|
}
|
||||||
# Search by name and description (Default)
|
# Search by name and description (Default)
|
||||||
else {
|
else {
|
||||||
$q.= "AND (Name LIKE '%".$_GET['K']."%' OR ";
|
$q_where .= "AND (Name LIKE '%".$_GET['K']."%' OR ";
|
||||||
$q.= "Description LIKE '%".$_GET['K']."%') ";
|
$q_where .= "Description LIKE '%".$_GET['K']."%') ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_GET["do_Orphans"]) && $_GET["do_Orphans"] == 'Orphans') {
|
if (isset($_GET["do_Orphans"]) && $_GET["do_Orphans"] == 'Orphans') {
|
||||||
$q.= "AND MaintainerUID IS NULL ";
|
$q_where .= "AND MaintainerUID IS NULL ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_GET['outdated'])) {
|
if (isset($_GET['outdated'])) {
|
||||||
if ($_GET['outdated'] == 'on') {
|
if ($_GET['outdated'] == 'on') {
|
||||||
$q .= "AND OutOfDateTS IS NOT NULL ";
|
$q_where .= "AND OutOfDateTS IS NOT NULL ";
|
||||||
}
|
}
|
||||||
elseif ($_GET['outdated'] == 'off') {
|
elseif ($_GET['outdated'] == 'off') {
|
||||||
$q .= "AND OutOfDateTS IS NULL ";
|
$q_where .= "AND OutOfDateTS IS NULL ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -528,9 +528,9 @@ function pkg_search_page($SID="") {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$q.= $q_sort;
|
$q_limit = "LIMIT ".$_GET["O"].", ".$_GET["PP"];
|
||||||
|
|
||||||
$q.= "LIMIT ".$_GET["O"].", ".$_GET["PP"];
|
$q = $q_select . $q_from . $q_where . $q_sort . $q_limit;
|
||||||
|
|
||||||
$result = db_query($q, $dbh);
|
$result = db_query($q, $dbh);
|
||||||
$total = mysql_result(db_query('SELECT FOUND_ROWS() AS Total', $dbh), 0);
|
$total = mysql_result(db_query('SELECT FOUND_ROWS() AS Total', $dbh), 0);
|
||||||
|
|
Loading…
Add table
Reference in a new issue