我有一个PHP文档,它根据搜索表单中的输入值查询MYSQL数据库。一切都很完美,除了我正在努力添加一个功能,我相信这将使整个应用程序更加用户友好。
我的数据库中的表格基本上是存储各种社交俱乐部的信息。它有关于他们的位置,名称,booking_price,alcohol_permitted的数据。我需要帮助的一点与alcohol_permitted有关。在数据库中,它的商店1或2,2意味着是酒精是允许的,1意味着没有它。
目前我的表格如下:
<form>
<label for="alcohol_check">Search clubs where alcohol permitted?</label>
<input type="radio" id="alcohol_check1" value="1" /><label for="radio1">No</label>
<input type="radio" id="alcohol_check2" value="2" /><label for="radio2">Yes</label>
<input type="radio" id="alcohol_check3" value="???" /><label for="radio3">Show both</label>
<label for="club_name">Enter social club name:</label>
<input type="text" id="club_name" name="club_name"/>
</form>
我的PHP看起来像这样:
$user_alcohol_permitted_selection = $_POST['alcohol_check']; //Value sent using jquery .load()
$user_social_club_name_input = $_POST['name']; //Value sent using jquery .load()
$query="SELECT * FROM social_clubs
WHERE name = $user_social_club_name_input
AND
WHERE alcohol_permitted = $user_alcohol_permitted_selection";
目前的问题是,我的查询只会检索提供酒精饮料或不饮酒的社交俱乐部。因为此时从alcohol_permitted表单传递的值是1或2。
我可以对我的查询做些什么,以便如果用户选择了“两者”选项,它会检索提供酒精和俱乐部的社交俱乐部,而不是?我弄清楚了!我的查询中是否需要if语句?
感谢您查看此内容,对不起,如果我没有解释清楚这一点。
答案 0 :(得分:1)
这应该有效。
$user_alcohol_permitted_selection = $_POST['alcohol_check']; //Value sent using jquery .load()
$user_social_club_name_input = $_POST['name']; //Value sent using jquery .load()
$query="SELECT * FROM social_clubs
WHERE name = $user_social_club_name_input";
if ($user_alcohol_permitted_selection == "???")
{
$query.= "AND WHERE alcohol_permitted = 1 OR alcohol_permitted = 2";
} else {
$query.= "AND WHERE alcohol_permitted = $user_alcohol_permitted_selection";
}
此外,如果列alcohol_permitted
仅包含值1或2.我建议您将列类型更改为bool,就像他的答案中建议的那样。
然后,您可以将条件语句减少到:
$query="SELECT * FROM social_clubs
WHERE name = $user_social_club_name_input";
if ($user_alcohol_permitted_selection != "???")
{
$query.= "AND WHERE alcohol_permitted = $user_alcohol_permitted_selection";
}
请注意!
。
答案 1 :(得分:0)
好的,首先,请将alchohol_permitted列的数据类型更改为bool(MySQL中的位(1))。只是阅读,让我发冷......
现在,问你的问题。试试这句话:
WHERE $user_alcohol_permitted_selection IS NULL
OR alcohol_permitted = $user_alcohol_permitted_selection