2011-12-14 7 views
1

私はMySQLとphpの初心者です。私はこの車軸を軸にしています。私はこれを何時間も働いていて、望みの結果を得ることができません。助けてください?私は何をし始めていますと、次のとおりです。簡単なSQLステートメント - ここで3つのテーブルをジョインする必要がありますか?

  1. 提出 - submission_id、価格、説明
  2. 画像 - image_idは、ファイル名、サイズ
  3. imagsub - image_idは、submission_id:

    $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]; 
    } 
    

    私は3つのテーブルを持っています

上記のスクリプトは、データベース内のすべてのファイル名とimage_idを取り出しています。参照するテーブルのsubmission_idと一致する画像行だけに結果を限定する必要があります。 Iveはsprintf関数内でさまざまなJOINSを無駄に試しましたが、今は単純なmysql_queryで必要な結果を得ることはできません。私は私の髪を引き出す前に誰かが正しい道で私を置くことができますか?私はここで3つのテーブルをすべてジョインする必要がありますか、それともイメージとimagsubテーブルをジョインするのに十分ですか?前のページから引き出された$ itemという変数にsubmission_idが必要なので、おそらく私はsubmissionsテーブルをまったく必要としないかもしれません。imagsubからの外部キーだけです。

+0

を試してみましたので、ありがとうございました!私はちょうど最初の応答に行って、それは素晴らしい仕事をした。私は完全に私を捨てていたので、あなたのアドバイスが正しい軌道に私を置くので、私は行方不明だったコードの後半に別の部分があった。 ( "images.image_idを選択し、画像からimages.filenameが images.image_id = imagsub.image_id imagsub.submission_id = '$アイテムの上imagsubに参加")するmysql_query = –

+0

答えて

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 
関連する問題