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

时间:2014-05-19 18:50:40

标签: php database cascadingdropdown multipleselection multiple-select-query

我为学校项目创建了一个网页,其中我有一系列选择框(一些是独立的,一些是依赖另一个)来进行选择,然后应用过滤器进行查询。它仍然处于测试模式,并且适用于单个选择。您可以在此处找到该网页:http://gorevler.awardspace.biz/realdeal03.html

例如当我选择来自地区的欧洲,来自国家的奥地利,来自行业的塑料,来自子行业的塑料原料和来自产品的聚丁烯,然后点击应用过滤器,它会给出结果。

,当我选择来自地区的欧洲和北美,来自国家的奥地利,来自行业的塑料,来自子行业的塑料原料和来自产品的聚丁烯,并点击应用过滤器,它仅给出一个结果。但是在数据库中有两个与此过滤器匹配的记录。所以它无法识别我的多重选择。关于如何使其工作的任何建议,以便当我在一个盒子上进行多项选择并应用过滤器时,它会给出所有结果,包括所有选择?

我想这是关于PHP编码的东西,我尝试了不同的东西,但还没有成功。由于我不是程序员,我似乎无法理解问题所在。任何有关编码的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

是否因为当您选择两个区域时,您的查询将变为: SELECT ... FROM ... WHERE region ='北美'和地区='欧洲'这意味着您永远不会从数据库中获得任何结果,因为该地区不能同时存在?如果是这样,你需要这样做,以便对多个选定区域使用“OR”语句。

有很多方法可以完成此任务。首先,您需要一种处理您所在区域的多个输入的方法,而不是仅仅在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%'");

或者

$sql = mysql_query("SELECT * from gorevler WHERE (region = '$bolge' OR region = '$bolge2' OR region = '$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=$_POST['europe];
$bolge2=$_POST['usa'];

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