summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorJakub Klinkovský <j.l.k@gmx.com>2020-09-05 22:15:22 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2021-02-20 17:25:21 +0100
commitbc972089a158459005700a7eaa8cee3ba666e2d1 (patch)
tree9bac58da68eae83354c45bc72563267d76061f5d /web
parent3062a78a92d32144f423fdb460e96a309732d9d0 (diff)
downloadaur-bc972089a158459005700a7eaa8cee3ba666e2d1.tar.gz
aur-bc972089a158459005700a7eaa8cee3ba666e2d1.tar.xz
Fix WHERE clause for keyword search queries with empty keywords
When the keyword parameter is empty, the AND clause has to be omitted, otherwise we get an SQL syntax error: ... WHERE PackageBases.PackagerUID IS NOT NULL AND () ... This got broken in commit 9e30013aa4fc6ce3a3c9f6f83a6fe789c1fc2456 Author: Kevin Morris <kevr.gtalk@gmail.com> Date: Sun Jul 5 18:19:06 2020 -0700 Support conjunctive keyword search in RPC interface Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'web')
-rw-r--r--web/lib/pkgfuncs.inc.php10
1 files changed, 5 insertions, 5 deletions
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index ac5c8cfe..eb3afab6 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -697,9 +697,7 @@ function pkg_search_page($params, $show_headers=true, $SID="") {
}
elseif (isset($params["SeB"]) && $params["SeB"] == "k") {
/* Search by name. */
- $q_where .= "AND (";
$q_where .= construct_keyword_search($dbh, $params['K'], false, true);
- $q_where .= ") ";
}
elseif (isset($params["SeB"]) && $params["SeB"] == "N") {
/* Search by name (exact match). */
@@ -711,9 +709,7 @@ function pkg_search_page($params, $show_headers=true, $SID="") {
}
else {
/* Keyword search (default). */
- $q_where .= "AND (";
$q_where .= construct_keyword_search($dbh, $params['K'], true, true);
- $q_where .= ") ";
}
}
@@ -885,7 +881,11 @@ function construct_keyword_search($dbh, $keywords, $namedesc, $keyword=false) {
$op = "AND ";
}
- return $q_keywords;
+ if (!empty($q_keywords)) {
+ $where_part = "AND (" . $q_keywords . ") ";
+ }
+
+ return $where_part;
}
/**