次の問題があります。
プロジェクトにユーザーのフィルターがあり、$fm_instrumentで指定されたすべての機器をテーブルにインストールしているユーザーのみをデータベースから選択する必要があります。
テーブルユーザー:
id_user | user_type |
--------------------------
| 1 | 2 |
テーブル楽器は次のようになります。
| id_user_instrument | id_user | instrument_title |
----------------------------------------------------------
| 1 | 1 | organ |
| 2 | 1 | flute |
| 3 | 1 | piano |
例:フィルターは$ fm_instrument ='flute、organ'を返します
そして私はこれをしています:
if(isset($fm_instrument) && $fm_instrument != '')
{
$instrument_arr = explode(',',$fm_instrument);
$instrument_sql = '';
foreach ($instrument_arr as $i=>$val) // pro kazdy nastroj
{
if($i != 0) {$instrument_sql.=" AND ";}
$instrument_sql .= " ( instrument_title='".$val."' ) ";
}
$instrument_sql_part = " AND ($instrument_sql)";
}
$user_sql ="SELECT * FROM `user` AS pu
LEFT JOIN instrument AS i USING(`id_user`) WHERE user_type=2 $instrument_sql_part ";
ただし、複数の楽器では機能しません。
正しいmysql_queryを使用すると、より簡単な解決策があると確信していますが、mysqlに関する私の知識はそれほど良くありません。
しばらくお待ちいただきますようお願いいたします。