2012-08-06 7 views
1

데이터베이스에서 콘텐츠 형식을 선택하고 콘텐츠 형식에 따라보기를 작성하는이 코드가 있습니다.데이터베이스 테이블의 특정 필드 선택

$q = db_query('SELECT n.nid, n.title, r.body, f.filename 
FROM {node} n 
INNER JOIN {node_revisions} r ON n.vid = r.vid 
INNER JOIN {content_type_brands} p ON p.nid = n.nid 
INNER JOIN {files} f ON f.fid = p.field_deyat_pic_fid 
WHERE n.type = "brands"'); 

그러나 특정 콘텐츠 형식 만 표시하려면이 코드를 만들어야 할 때 모든 콘텐츠 형식이 표시됩니다. 선택한 콘텐츠 유형 만 표시하려면 어떻게해야합니까?

답변

3

WHERE 조항에서 n에서 p으로 변경하십시오.

SELECT n.nid, n.title, r.body, f.filename 
FROM {node} n 
      INNER JOIN {node_revisions} r 
       ON n.vid = r.vid 
      INNER JOIN {content_type_brands} p 
       ON p.nid = n.nid 
      INNER JOIN {files} f 
       ON f.fid = p.field_deyat_pic_fid 
// WHERE p.type = 'brands' 
WHERE p.type IN ('brand1','brand1','brand1') 
+0

출력 결과가 어떻게 바뀌나요? – Avdept

+0

쿼리는'type'을'node'에 기반합니다. 이 쿼리는'{content_type_brands}'에 기반하고 있습니다. –

+0

p를 n으로 변경하면 결과가없는 빈 페이지가 나타납니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? – Avdept

관련 문제