gpt4 book ai didi

php - 基于文本字段和列表菜单的条件搜索

转载 作者:行者123 更新时间:2023-11-29 14:53:43 27 4
gpt4 key购买 nike

我正在尝试进行搜索,用户可以根据某些条件搜索某些场所(夜总会)。

到目前为止,我已经制作了一个搜索框,用户可以输入俱乐部名称和列表菜单来选择位置。

下拉列表菜单(从数据库动态生成)如下:

地点:

Select
Westlands
Eastleigh
Langata
Kamukunji
Dagoretti
Starehe
Makadara

我想让它这样,如果用户将文本字段留空并选择韦斯特兰并点击搜索按钮,韦斯特兰的所有俱乐部都会显示出来。 这工作正常。

此外,用户可以在文本框中输入内容,并将列表菜单保留为默认选择,然后将显示匹配的结果。 这也工作正常。

我还希望当用户在文本框中输入“P”并选择韦斯特兰时,韦斯特兰中以字母“P”开头的所有俱乐部都会显示出来。 这不起作用。

我的代码:

//get textfield search value
$search_value = "-1";
if (isset($_POST['event_search']))
{
$search_value = $_POST['event_search'];
$search_value = mysql_real_escape_string($search_value);
}

//get location search value
$location_search_value = "-1";
if (isset($_POST['location']))
{
$location_search_value = $_POST['location'];
$location_search_value = mysql_real_escape_string($location_search_value);
}

//query establishments table
mysql_select_db($database_connections, $connections);
$query_establishment = "SELECT establishment_id, establishment_thumb_url, establishment_name, establishment_pricing, location_name
FROM establishment JOIN location ON establishment.location_id = location.location_id WHERE (establishment_name LIKE '".$search_value."%'
AND establishment.location_id = '$location_search_value') OR (establishment_name LIKE '".$search_value."%'
OR establishment.location_id = '$location_search_value')";
$establishment = mysql_query($query_establishment, $connections) or die(mysql_error());
$totalRows_establishment = mysql_num_rows($establishment);

截至目前,当我在文本框中输入“P”并选择韦斯特兰时,所有以字母 P 开头的俱乐部都会显示出来,无论位置如何。我该如何解决这个问题?

非常感谢您的帮助。

最佳答案

你的where子句中有一些奇怪的东西。

如果您测试:(A AND B) OR (A OR B)

A => a.establishment_name LIKE '".$search_value."'
B => a.location_id = '".$location_search_value."'

如果 A 为真,则 b 不必为真。这说明你的第三个例子不起作用。我认为您应该测试您的值并根据您的解释创建正确的 WHERE 子句。

if($search_value != "" && $location_search_value == "") {
$where = "a.establishment_name LIKE '".$search_value."'";
} else if ($search_value == "" && $location_search_value != "") {
$where = "a.location_id = '".$location_search_value."'";
} else {
$where = "(a.establishment_name LIKE '".$search_value."' AND a.location_id = '".$location_search_value."')";
}
$query = "SELECT a.*, b.location_name ".
"FROM establishment a ".
"JOIN location b ON a.location_id = b.location_id ".
"WHERE ".$where;

关于php - 基于文本字段和列表菜单的条件搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com