From 747f26dcb664ff2766c0a88b5a55569ca921c7b0 Mon Sep 17 00:00:00 2001 From: Brian Foley Date: Wed, 13 May 2026 23:40:56 +0000 Subject: [PATCH] Fix api/v1/projects?languages=X query which failed with DB error --- api/v1_projects.inc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/v1_projects.inc b/api/v1_projects.inc index 67b181708..0d32b2218 100644 --- a/api/v1_projects.inc +++ b/api/v1_projects.inc @@ -70,8 +70,13 @@ function api_v1_projects(string $method, array $data, array $query_params) foreach ($query as $field => $values) { $values = array_map("DPDatabase::escape", $values); $column_name = $valid_fields[$field]; - - if (in_array($field, ["author", "title", "languages", "clearance"])) { + // Languages occur as one language or two and are stored as + // "Lang1" or "Lang1 with Lang2" in projects.language. + // See Project.inc:encode_languages + if ($field == "languages") { + $likes_str = surround_and_join($values, "language LIKE '%", "%'", ' OR '); + $where .= " AND ($likes_str)"; + } elseif (in_array($field, ["author", "title", "clearance"])) { $likes_str = surround_and_join($values, "$column_name LIKE '%", "%'", ' OR '); $where .= " AND ($likes_str)"; } else {