是因为当您选择两个区域时,您的查询变为: SELECT ... FROM ... WHERE region ='North America'AND region ='Europe',这意味着您永远不会从数据库获得任何结果该地区不能兼得?如果是这样,你需要做到这一点,所以你使用“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'];
等
这可能是快速和肮脏的方法呢。
是的你是对的。当我在框中选择欧洲和北美时,我希望结果显示所有记录,包括欧洲或北美。那么我应该在下面的PHP代码上做一些修改吗?:'$ bolge = $ _ POST ['filtre_region']; $ sql = mysql_query(“SELECT * from gorevler WHERE region LIKE'%$ bolge%'AND country LIKE'%$ ulke%'AND sector LIKE'%$ sektor%'AND sub_sector LIKE'%$ altsektor%'AND product LIKE' %$ urun%'“);' – barutto
在这种情况下,您需要动态构建您的查询,因此如果选择了更多的区域,则会添加更多的子句。因此,如果地区是美国或欧洲,那么查询应该是select ... from ... where(region ='europe'或region ='usa')和...;那种查询。 – d1ll1nger
那么你认为我应该尝试sql IN操作符吗?或者是其他东西?如果你能给我编码提示,我会非常感激。 – barutto