다음과 같은 문제점이 있습니다.다른 테이블에 값 집합이있는 행을 선택하십시오.
필자는 내 프로젝트에서 사용자 필터를 사용하고 있으며 데이터베이스에서 선택하려면 $ infilename으로 지정된 모든 악기를 inastrument 테이블에 가지고 있어야합니다.
테이블 사용자 :
| id_user_instrument | id_user | instrument_title |
----------------------------------------------------------
| 1 | 1 | organ |
| 2 | 1 | flute |
| 3 | 1 | piano |
예 : 필터는 반환이 $ fm_instrument = '피리, 기관'
내가이 일을 :
id_user | user_type |
--------------------------
| 1 | 2 |
테이블 기기는 다음과 같습니다
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의 지식은 그리 좋지 않습니다.
양해 해 주셔서 감사합니다. = 폴리 우레탄 LEFT 내가 ON (pu.id_user 그대로 악기를 가입 AS user``로부터 SELECT * 난을 -
을 시도 제공해야합니다. id_user) WHERE user_type = 2 AND instrument_title IN ("플루트", "오르간") – Joddy
내 말은 - IN 절 – Joddy
을 사용하십시오. @Joddy 사용자 결과는 ** 모든 ** 악기와 일치해야합니다. –