gpt4 book ai didi

php - 使用 WHERE 为多个复选框检索表单数据

转载 作者:行者123 更新时间:2023-11-29 01:23:32 27 4
gpt4 key购买 nike

我需要一个 php 脚本,它将使用表单复选框的值作为 MySQL 查询来检索数据。我想我需要在查询中使用 WHERE 和 OR 运算符。

我的 PHP 和 MySql 水平是初学者。

<form id="form1" name="form1" method="post" action="">

<p>
<h3>story</h3>
<label><input type="checkbox" name="story" value="1" id="story_1" />one story</label>
<label><input type="checkbox" name="story" value="2" id="story_2" />two story</label>
</p>

<p>
<h3>bedrooms</h3>
<label><input type="checkbox" name="bedroom" value="2" id="bed_2" />two beds</label>
<label><input type="checkbox" name="bedroom" value="3" id="bed_3" />three beds</label>
<label><input type="checkbox" name="bedroom" value="4" id="bed_4" />four beds</label>
</p>

<p>
<h3>baths</h3>
<label><input type="checkbox" name="bath" value="1" id="bath_1" />one bath</label>
<label><input type="checkbox" name="bath" value="2" id="bath_2" />two baths</label>
<label><input type="checkbox" name="bath" value="3" id="bath_3" />three baths</label>
</p>

<input type="submit" name="search" value="search" />

</form>

到目前为止我的查询

SELECT * FROM homes WHERE story='1' OR story='2' OR bed='3' OR baths='3'

因此,如果没有选中任何复选框,则根本不会添加 WHERE 子句,默认情况下会检索所有记录。

最佳答案

使用带有这么多 or 的 select 语句会导致问题。

SELECT * FROM homes WHERE story='1' OR story='2' OR bed='3' OR baths='3'

这将产生所有的家其中 story = 1,有任意数量的浴室或卧室。其中 story = 2,有任意数量的浴室或卧室。其中床 = 3,有任意数量的故事或浴室其中 baths = 3 有任意数量的床或浴缸

所以你最终可能会得到所有家庭的结果

您应该做的是用括号将不同的类型分开,并在它们之间使用 AND。

SELECT * FROM homes WHERE (story='1' OR story='2') and (bed='3') and (baths='3')

或者对于更复杂的查询,类似这样。

SELECT * FROM homes WHERE (story='1' OR story='2') 
and (bed='3' OR bed = '4')
and (baths='3' OR baths='4')

这将产生具有 1 层或 2 层和 3 层或 4 层卧室以及 3 层或 4 层浴室的结果。您不会得到任何 3 层的房子,您不会得到任何 2 间卧室的房子,并且你不会得到两间浴室的房子。

我想这就可以了。

关于php - 使用 WHERE 为多个复选框检索表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154535/

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