私は 2 つのテーブルを持っています。1 つ目はユーザーの詳細を含むユーザー テーブルで、2 つ目はサービス ID が格納されたサービス テーブルです。
テーブル ユーザー:
id Name mail gender
-----------------------------------------
1 John john@gmail.com Male
2 Mike mike@gmail.com Male
3 Duke duke@gmail.com Male
4 Queen queen@gmail.com Female
テーブル サービス:
id profile_email service
----------------------------
1 john@gmail.com 3
2 john@gmail.com 4
3 mike@gmail.com 3
4 mike@gmail.com 5
5 queen@gmail.com 3
6 queen@gmail.com 4
フォームのチェックボックス:
<input type="checkbox" value="1" name="services[]" id="services1" /> Service 1
<input type="checkbox" value="2" name="services[]" id="services2" /> Service 2
<input type="checkbox" value="3" name="services[]" id="services3" /> Service 3
<input type="checkbox" value="4" name="services[]" id="services4" /> Service 4
<input type="checkbox" value="5" name="services[]" id="services5" /> Service 5
ここで私の質問は、これら 2 つのテーブルを結合して、チェックされたサービスに基づいてフィルター処理されたレコードを表示するにはどうすればよいかということです。
以下のクエリを試していますが、問題は重複した行を示しています。私を助けてください。よろしくお願いします.m
$select = "SELECT a.*, b.services FROM users a LEFT JOIN services AS b ON b.profile_email = a.mail ";
if(isset($_REQUEST['services']))
{
$services_search = mysql_real_escape_string(implode(', ', $_REQUEST['services']));
$select .= " AND b.services IN ($services_search)";
}