2012-04-09 6 views
1

현재 회원이 내 웹 사이트에 업로드 한 논문을 표시하려고합니다. 사용자가 주제를 클릭하면 해당 주제 아래에있는 논문이 표시됩니다. 그러나 내 쿼리는 특정 논문이 아닌 모든 논문을 보여줍니다. 여기여러 열 표시 Mysql

//time to get our info 
//time to get our info 
$sql = "SELECT paper.title, paper.username, paper.abstract, paper.filelocation FROM `paper`, `topic` WHERE topic_name = 'artificial intelligence' "; 
$result = mysql_query($sql); 
while($file = mysql_fetch_array($result)){ 
    echo '<li>'; 
    echo '<h1>'.$file['title'].'</h1><br />'; 
    //now the file info and link 
    echo '<h3>Uploaded By: '.$file['username'].'</h3><br />'; 
    echo '<a href="'.$file['filelocation'].'">'.$file['title'].'</a>'; 
    echo '<h1> Abstract : ' .$file['abstract'].'</h1><br />'; 
    echo '</li>'; 
} 
?> 
</ul 

는 paper_id 이 주제

이 topic__name

종이

paper_을 topic_id

topic_id

asso 내 테이블입니다 ID 제목 이름 추상적 인 당신이 그들을 연결하는 주요 조건과 함께 두 개의 테이블을 조인 할 필요가 filelocation

답변

5

:

SELECT 
    paper.title, 
    paper.username, 
    paper.abstract, 
    paper.filelocation 
FROM `paper` 
INNER JOIN `topic` on `paper`.`topic_id` = `topic`.`topic_id` 
WHERE topic_name = 'artificial intelligence' 

그렇지 않으면 당신은 당신에게 가능한 모든 조합을 제공하는 두 테이블을 조인 교차됩니다 두 테이블 사이.

+0

기술적으로 OP는 있지만 조인 조건을 지정하지 않았기 때문에 직교 결합으로 실행됩니다. 하지만 그렇지 않으면 자리에 앉으세요. +1. –

+0

@MarcB : 명확하고 명확하게 업데이트 됨 : – mellamokb

+0

코드를 사용했지만이 오류 메시지가 나타납니다. 경고 : mysql_fetch_array()는 매개 변수 1이 C : \ Wamp \ www \ ai.php에 지정된 리소스가 될 것으로 기대합니다. line 30 –