2012-04-09 107 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_id

話題

topic_id topic__name

paper_ 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。 – 2012-04-09 15:26:05

+0

@MarcB:是的,爲清晰起見更新:) – mellamokb 2012-04-09 15:27:01

+0

我使用的代碼,但我得到了這個錯誤信息 警告:mysql_fetch_array()期望參數1是資源,布爾在C:\ wamp \ www \ ai.php第30行 – 2012-04-09 15:28:59