Php 在选择框中选择多个选项并从数据库中获取结果?

Php 在选择框中选择多个选项并从数据库中获取结果?,php,database,cascadingdropdown,multipleselection,multiple-select-query,Php,Database,Cascadingdropdown,Multipleselection,Multiple Select Query,我为一个学校项目制作了一个网页,我有一系列的选择框(有些是独立的,有些是依赖于另一个)进行选择,然后应用过滤器进行查询。它仍然处于测试模式,并且可以很好地进行单选。您可以在此处找到该网页: 例如,当我从地区中选择欧洲,从国家中选择奥地利,从部门中选择塑料,从子部门中选择塑料原材料,从产品中选择聚丁烯,然后单击应用过滤器,它会给出结果 但是当我从地区中选择欧洲和北美,从国家中选择奥地利,从部门中选择塑料,从子部门中选择塑料原材料,从产品中选择聚丁烯,然后单击应用过滤器,它只给出一个结果。但数据库中

我为一个学校项目制作了一个网页,我有一系列的选择框(有些是独立的,有些是依赖于另一个)进行选择,然后应用过滤器进行查询。它仍然处于测试模式,并且可以很好地进行单选。您可以在此处找到该网页:

例如,当我从地区中选择欧洲,从国家中选择奥地利,从部门中选择塑料,从子部门中选择塑料原材料,从产品中选择聚丁烯,然后单击应用过滤器,它会给出结果

但是当我从地区中选择欧洲和北美,从国家中选择奥地利,从部门中选择塑料,从子部门中选择塑料原材料,从产品中选择聚丁烯,然后单击应用过滤器,它只给出一个结果。但数据库中有两条记录与此筛选器匹配。所以它不承认我的多重选择。关于如何使其工作的任何建议,以便当我在一个框上进行多个选择并应用过滤器时,它会给出所有结果,包括所有选择


我猜这是关于PHP编码的,我尝试了不同的方法,但还没有成功。由于我不是程序员,我似乎不明白问题出在哪里。任何关于编码的建议都将不胜感激

是因为当您选择两个区域时,您的查询变成: 选择从…起其中region='North America'和region='Europe',这意味着您永远不会从数据库中获得任何结果,因为该区域不能同时是这两个区域?如果是这样的话,您需要对多个选定区域使用“或”语句

有许多方法可以完成这一点。首先,您需要一种方法来处理您所在区域的多个输入,而不仅仅是在php代码中定义一个输入。基本上,一旦您捕获了多个区域,那么您的查询行就是唯一需要更改的行。这可以成为:

$sql = mysql_query("SELECT * from gorevler WHERE region IN ('%$bolge%','%$bolge2%','%bolge3%') AND country LIKE    '%$ulke%' AND sector LIKE '%$sektor%' AND sub_sector LIKE '%$altsektor%' AND product LIKE   '%$urun%'");

在最后一个问题上使用一些指针进行编辑:

它只需要来自你的HTML。因此,如果您选择了多个区域,那么它会将这些区域发布到您的PHP页面。例如:

<option value="" data-filter-type="" selected="selected" id="europe">Europe</option>

<option value="" data-filter-type="" selected="selected" id="usa">USA</option>
等等


无论如何,这可能是最快捷、最肮脏的方法。

是的,你说得对。当我在框中选择欧洲和北美时,我希望结果显示所有记录,包括欧洲或北美。那么,我应该对下面的PHP代码进行更改吗?:
$bolge=$\u POST['filter\u region']$sql=mysql_查询(“从gorevler中选择*,其中区域为“%$bolge%”,国家为“%$ulke%”,扇区为“%$sektor%”,子扇区为“%$altsektor%”,产品为“%$urun%”)
在这种情况下,您需要动态构建查询,因此如果选择了更多的区域,则会添加更多的子句。所以,如果地区是美国或欧洲,那么查询应该是select。。。从…起(欧洲地区或美国地区)和;这类查询。所以你们认为我应该在操作符中尝试sql吗?还是别的什么?如果你能给我编码提示,我将不胜感激。谢谢,伙计,这正是我要找的!最后一个问题:对于修改Php文件以进行多区域选择,您有什么建议吗?我知道我要求的太多了,但那对我来说是很大的帮助。没问题。我在答案的底部又加了一点。
<option value="" data-filter-type="" selected="selected" id="europe">Europe</option>

<option value="" data-filter-type="" selected="selected" id="usa">USA</option>
$bolge=$_POST['europe];
$bolge2=$_POST['usa'];