0

私は一連の選択ボックス (いくつかは独立しており、いくつかは別のものに依存しています) を使用して選択を行い、フィルターを適用してクエリを作成する学校プロジェクトの Web ページを作成しました。まだテストモードであり、単一の選択に対しては正常に機能しています。ここでウェブページを見つけることができます: http://golevler.awardspace.biz/realdeal03.html

たとえば、地域からヨーロッパ、国からオーストリア、セクターからプラスチック、サブセクターからプラスチック原料、製品からポリブチレンを選択し、フィルターの適用をクリックすると、結果が表示されます。

しかし、地域からヨーロッパと北アメリカ、国からオーストリア、セクターからプラスチック、サブセクターからプラスチック原料、製品からポリブチレンを選択してフィルターを適用をクリックすると、結果は 1 つしか表示されません。しかし、データベースにはこのフィルターに一致する 2 つのレコードがあります。そのため、複数選択が認識されません。ボックスで複数選択してフィルターを適用すると、すべての選択を含むすべての結果が得られるように、どのように機能させることができるかについてのアドバイスはありますか?

これは PHP コーディングに関するものだと思います。さまざまなことを試しましたが、まだ成功していません。私はプログラマーではないので、問題がどこにあるのか理解していないようです。コーディングに関するアドバイスをいただければ幸いです。

4

1 に答える 1

0

2 つの地域を選択すると、クエリが SELECT ... FROM ... WHERE region ='North America' AND region = 'Europe' になるためですか? ? その場合は、複数の選択された領域に対して「OR」ステートメントを使用するようにする必要があります。

これを完了する方法は多数あります。まず、php コードで 1 つの入力を定義するだけでなく、リージョンの複数の入力を処理する方法が必要です。基本的に、複数の地域をキャプチャしたら、変更が必要な行はクエリ行だけです。これは次のようになります。

$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'];

とにかく、それはおそらく最も迅速で汚い方法です。

于 2014-05-19T21:02:36.543 に答える