2015-12-13 78 views
1

我在數據庫中有three tables內部連接數據庫

1引號

2-類型

3-作者

在報價表,我已經分配TYPE_ID這在類型表的主鍵也AUTHOR_ID這對於作者表的主鍵。

現在,當我想在這種格式一次回顯一個報價。

"When you get to my age life seems little more than one long march to 
and from the lavatory." 

By: A. C. Benson Category: age 

那麼如何連接這個數據庫來獲得這種類型的輸出呢?

我試過這個,但它只輸出報價。

$sql = "SELECT * FROM quotes LIMIT 1"; 
$result = $con->query($sql); 
if ($result->num_rows > 0) { 

    while($row = $result->fetch_assoc()) { 
    echo " \" " . $row["quote"]. "\"<br><br>"; 
} 
+1

是類別和類型相同的條款在您的代碼/數據庫?而且,你可以顯示引號表的結構嗎? –

+0

是的類別意味着類型和我已經鏈接的圖像http://puu.sh/lTNGq/320fd6af2e.png –

回答

1

您應該使用JOIN子句將報價的輸出與類型和作者連接起來。

例如,如果每個引用都有一個字段type_id和author_id來鏈接到其他表,則可能會出現這種情況。

SELECT * FROM quotes JOIN types ON quotes.type_id = types.id JOIN authors ON quotes.author_id = author.id 

在PHP中,這可能看起來如下:

$sql = "SELECT * FROM quotes JOIN types ON quotes.type_id = types.id JOIN authors ON quotes.author_id = authors.id"; 
$result = $con->query($sql); 
if ($result->num_rows > 0) { 

    while($row = $result->fetch_assoc()) { 
    echo " \" " . $row["quote"]. "\"<br>".$row["author"]." ".$row["type"] ."<br>"; 
} 

當你的表是這樣的:

quotes: 
id, quote, author_id, type_id 

types: 
id, type 

authors: 
id, author 
+0

然後,你可以在你的'$ row [「column_name」]''中使用每個連接表的所有行名稱。如果它們具有相同的名字,例如作者有一個「名稱」列,報價有一個「名稱」列,您可以使用ALIAS。 – Randrian

+1

您也可以嘗試使用別名 'SELECT quotes.quote,authors.author AS author_name,types.type AS type_name FROM quotes JOIN types ON quotes.type_id = types.id JOIN authors ON quotes.author_id = authors.id'然後嘗試'$ row [「author_name」]' – Randrian

+0

當我在phpmy admin中運行查詢時,Everythings在SQL中很好。 但在我的PHP文件中,它給出了錯誤。 :( http://puu.sh/lTQFe/246132deac.png http://puu.sh/lTQGg/44b66bad6d.png http://puu.sh/lTQIJ/d6b8cc5e19.png –