2011-12-14 22 views
1

我是MySQL和PHP的新手,我正在圍繞這個軸上的軸。我一直在這個工作幾個小時,不能得到理想的結果。請幫助?什麼我開始用的是:簡單的SQL語句 - 我應該在這裏或2加入3個表嗎?

$query = sprintf('select image_id, filename from images'); 
$result = mysql_query($query); 
$images = array(); 
    while ($row = mysql_fetch_array($result)) { 
    $id = $row['image_id']; 
    $images[$id] = $row['filename']; 
    echo $images[$id]; 
} 

我有三個表:

  1. 提交 - submission_id,價格,描述
  2. 圖片 - image_id,文件名,大小
  3. imagsub - image_id,submission_id

上述腳本正在提取數據庫中的所有文件名和image_id。我需要將結果限制爲與引用表中的submission_id匹配的圖像行。我試過sprintf函數中的各種JOINS無濟於事,現在我甚至無法用簡單的mysql_query得到我想要的結果。在我拉出頭髮之前,有人能讓我走上正確的道路嗎?我需要在這裏加入所有三張桌子還是足夠加入圖像和imagsub表格?我有一個名爲$ item的變量,需要在之前的頁面中提取,因此可能我根本不需要提交表,只是來自imagsub的外鍵?

+0

太謝謝你了!我剛剛接受了第一個迴應,而且效果很好。之後在我失蹤的代碼中有另一篇文章將我完全扔掉,所以你的建議讓我走上了正確的軌道。我結束了: – 2011-12-14 04:45:18

回答

0

你試過

select image_id, filename from images 
    join imagsub on images.image_id = imagsub.image_id 
    where imagesub.submission_id = YourID 
0

嘗試:

select image_id, filename from images i 
    join imagesub s on s.image_id = i.image_id 
    where s.subbmision_id = $1; 

您需要$ 1參數設置爲您在請求中收到了「$項目」值。

0

嘗試以此爲查詢來獲取所有這些

select s.submission_id, b.image_id, i.filename 
from submissions s 
inner join imagsub b on b.submission_id = s.submission_id 
inner join images i on i.image_id = b.image_id