2013-12-18 46 views
0

我有一個系統,我從我的數據庫中獲取圖像,但是當它這樣做時,有相同圖像的3倍。PHP/MySQL INNER JOIN增加行數的三倍?

我嘗試過不同的方式,DISTINCT等,但我不知道如何解決這個問題。

這裏是我的查詢代碼:

<?php 
$id = $_GET['id']; 

$query = "SELECT DISTINCT * FROM billeder INNER JOIN album ON fk_album_ID = $id"; 

$result = mysqli_query($con, $query); 

while($row = mysqli_fetch_assoc($result)) 
{ 
    $thumb_src = 'billeder/thumb_'.$row['billeder_sti']; 
    $full_src = 'billeder/'.$row['billeder_sti']; 

    echo " 
      <div class='ikon'> 
       <a href='$full_src'> 
        <img src='$thumb_src' alt='' /> 
       </a> 
      </div> 
    "; 
} 

?> 

希望有人能幫助我的方式來解決這個:)

+1

你有沒有外鍵加入這兩張表? – Parixit

+0

我應該如何創建它?我知道我在哪裏創建它,但不知道如何:) – kristian

+2

張貼您的表格,所以我們可以幫助您。你的'JOIN'沒有加入兩個表格列,這就是爲什麼它不能正常工作。 – Minoru

回答

0

JOIN必須使用兩個表的列中。見例如:

SELECT * FROM tableA a INNER JOIN tableB b ON a.id = b.a_id; 

你試圖做什麼是這樣的:

"SELECT DISTINCT * FROM billeder INNER JOIN album ON 
    billeder.fk_album_ID = album.album_id WHERE billeder.id = $id" 

您應該參數不傳遞給JOIN。該參數必須在WHERE子句中使用。

+0

謝謝! :) $ query =「SELECT DISTINCT * FROM billeder INNER JOIN album ON fk_album_ID = album_ID WHERE album_ID = $ id」; – kristian

+0

@kristian如果問題解決了,你可以接受答案。 – Minoru

+0

我做到了:)謝謝你! – kristian

1

如果不能看到您的表格結構,我將無法給出確切的答案,但可能的原因是因爲您的INNER JOIN未正確設置。

SELECT DISTINCT * 
FROM billeder 
INNER JOIN album 
    ON (billeder.fk_album_ID = album.pk_album_ID) 
WHERE 
    billeder.fk_album_ID = $id 

喜歡的東西上面會正確的方式JOIN一張桌子和使用WHERE子句來限制隨後收到的日期。

+0

謝謝你! :)我現在得到它的工作 – kristian