是因爲當您選擇兩個區域時,您的查詢變爲: 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