2012-03-19 33 views
1

私はできる限りこれを説明しようとします。フィルタテーブルWHERE 1カラム=別のテーブルのカラム

1つの表から国名を入力したドロップダウンがあります。誰かがカナダのことを選択すると、2番目のドロップダウンが必要で、2番目のテーブルの結果をフィルタリングする必要があります。ここで

は、私は私がクエリを変更する必要があります知っている

<?php 
$query="SELECT * FROM location_region"; 

$result = mysql_query ($query); 
echo "<select id='province_select' name='province_select' class='province_select' style='width:540px' value=''></option>"; 

while($nt=mysql_fetch_array($result)){ 
echo "<option value=$nt[value]>$nt[name]</option>" 

} 
echo "</select>"; 
?> 

を使用しているコードですが、私のような何かを行うことができます。これは動作しません

​​

をしているが、これを書いているところがもうありますか?ここではテーブル構造であるガーションHerczegの場合:常に

EDITとして表 は「location_regionは、」表「location_country」から

おかげコラム「値」に等しいはずである「国」という名前の列を持っています

location_countryは、のようなものです:

ID name   value 
1 Canada  CA 
2 Great Britain GB 
3 United States US 

location_regionに似ています

+1

最初の「選択」が変更されたときにページをサーバーにポストしていますか?または、2回目の 'select'を動的に代入するように変更したときにAJAX呼び出しを行っていますか?それに応じてコードをどのように整理するか。 – David

答えて

2

はい、これはインナージョインと呼ばれ、指定した1つまたは複数の列にマッチした1つの大きな行のコレクションを効果的に提供します。

SELECT lr.* 
FROM location_region lr 
INNER JOIN location_country lc on lr.country = lc.country 
WHERE lr.country = <selected value from dropdown> 

選択した値をクエリに置き換えると、選択した国の地域表のすべてが表示されます。

ただし、リージョンテーブルにドロップダウンリストの値と一致する国の列がある場合は、それを選択するだけで開始します。

SELECT * 
FROM location_region 
WHERE country = <selected value from dropdown> 
+0

Thanks Bridge、私はジョインズをまだ扱っていませんが、これは理にかなっていますが、私はチュートリアルを見つけようとしています。 –

+0

なぜそれを少し説明しようとしたのですか?対応するものに一致するものがなくても、1つまたは両方のテーブルのすべての行を必要とするときに、さまざまなタイプの結合があります。 。 – Bridge

+0

おかげでたくさんのチュートリアルがやってくれましたしかし、これは私にこれを説明する時間をとってくれてありがとう、実験の道を開く。 –

0

あなたは二つのテーブルのフィールドを掲示する必要がある完全な答えを得るためにまあ、それはこの種の何かが必要です。

SELECT location_region.name FROM location_region LEFT JOIN location_country ON location_regions.country = location_country.value 
1

クエリは次のように書くことができます。

$query="SELECT * FROM location_region, location_country WHERE location_region.country = location_country.value WHERE location_region.country = {USER INPUT}" 
+0

ありがとう、これはほとんどの作品は、しかし、それはまだいくつかの国の地域があるので、それらの結果にそれを制限する方法があるので、すべての地域を示していますか? –

+0

はい、別のwhere句を追加して国を検索することができます。私は自分の答えを更新しました。 – jasonlfunk

+0

おかげさまでジェイソン私はあなたのような人々のおかげですぐに勉強しています。 –

関連する問題