2011-07-15 12 views
0

を使用して値を取得する際に問題が発生しました.3つのテーブルがあります。外部キー

表1:t_atc_list

id | a_name | s_title | r_name 
------------------------------ 
80 | ss  | 128  | 5 

s_title & r_nameは外部キーです。

表2:t_s_list

s_id | title 
------------- 
128 | Song Title 

を表3:a_name

私はアルバム名を使用して、この形式Song Title- Artistで出力を所望していると、次のクエリを使用している t_r_list

r_id | r_name 
-------------- 
5 | Artist 

$resultid=mysql_query("SELECT s_title, r_name FROM t_atc_list where a_name='$album' "); 
$rowid=mysql_fetch_array($resultid); 
$query=mysql_query("SELECT s.title, r.r_name FROM t_a_list as a, t_r_list as r, WHERE s.s_id=$rowid('s_title') and r.r_id= $rowid('r_name')"); 
$row=mysql_fetch_array($query); 
+0

なぜあなたは別のテーブルに曲のタイトルを入れましたか? –

+0

私はどこにでも置いてはいけません。私は歌テーブルとアーティストテーブルの値を表示したい。 – Aditii

+0

ええ私はそれが私に良いdbのスキーマを見ていないと言いたいだけの質問を理解した。 –

答えて

1

私はあなたが欲しいSQLクエリがあると思う:

SELECT 
    t.id, 
    t.a_name, 
    s.title as s_title, 
    r.r_name 
FROM 
    t_atc_list t 
     INNER JOIN t_s_list s ON t.s_title = s.s_id 
     INNER JOIN t_r_list r ON t.r_name = r.r_id 
WHERE 
    t.a_name = '$album' 

FWIW、あなたのテーブルの命名規則と一般的にあなたのスキーマはかなり奇抜です。少なくとも、 "トラック"、 "曲"、 "アーティスト"、またはあなたのテーブル名のための彼らが何であるか(または純粋な "トラック"、 "曲"、 "アーティスト")の間違いは何ですか?

+0

正しい、 'artist'値を取得しますが、曲名に空白を付けます。あなたはそれを詳しく教えてください。私はこれで新しいです... – Aditii

+0

GOT IT .......ありがとう。 – Aditii

0
$query=mysql_query("SELECT s.title, r.r_name 
FROM t_a_list a, t_r_list r, WHERE s.s_id={$rowid['s_title']} 
and r.r_id={$rowid['r_name']}"); 

文字列に$ rowidを間違って使用しています。それが問題なのかどうかはわかりませんが、それは確かに一つです。

PS:1つの結合クエリにクエリを書き直すことができます。しかし、SQLを掘り下げる前に、PHPの基本を真っ直ぐにして、について読むことをお勧めします。

+0

警告:mysql_fetch_array():指定された引数が有効なMySQLの結果リソースではありません.... – Aditii