Search options for marketplace

This commit is contained in:
2025-08-27 21:56:58 -07:00
parent b79b2e54b8
commit dc7d30a3b6

View File

@@ -4,13 +4,44 @@ setPlainHeader();
checkClientDatabaseVersion(); checkClientDatabaseVersion();
$conn = newConnection(); $conn = newConnection();
$stmt = $conn->prepare(" $post = getPostData();
$priceRangeEnabled = (bool)$post['priceRangeEnabled'] ?? false;
$priceRangeMin = (int)$post['priceRangeMin'] ?? 10;
$priceRangeMax = (int)$post['priceRangeMax'] ?? 250;
$searchForEnabled = (bool)$post['searchForEnabled'] ?? false;
$searchForValue = (string)$post['searchForValue'] ?? '';
$where = ["u.banned = 0", "(c.state = 1 OR c.state = 2)"];
$params = [];
$types = "";
if ($priceRangeEnabled) {
$where[] = "c.price BETWEEN ? AND ?";
$params[] = $priceRangeMin;
$params[] = $priceRangeMax;
$types .= "ii";
}
if ($searchForEnabled && $searchForValue !== '') {
$where[] = "FROM_BASE64(c.name) LIKE ?";
$params[] = "%$searchForValue%";
$types .= "s";
}
$sql = "
SELECT c.data, u.username, u.id, c.price, c.name, c.uuid, c.state SELECT c.data, u.username, u.id, c.price, c.name, c.uuid, c.state
FROM marketplaceicons c FROM marketplaceicons c
JOIN users u ON c.userId = u.id JOIN users u ON c.userId = u.id
WHERE u.banned = 0 AND c.state = 1 OR c.state = 2 WHERE " . implode(" AND ", $where) . "
ORDER BY c.id ASC ORDER BY c.id ASC
"); ";
$stmt = $conn->prepare($sql);
if (!empty($params)) {
$stmt->bind_param($types, ...$params);
}
$stmt->execute(); $stmt->execute();
$result = $stmt->get_result(); $result = $stmt->get_result();