2011-01-09 97 views
0

如果我有這樣的SELECT語句:PHP/MySQL:如何在多個表中調用MySQL結果?

SELECT T1.TEXT, T2.FIELD FROM TABLE1 T1, TABLE2 T2 WHERE T1.ID = T2.ID 

然後,我用的mysql_query使用它與mysql_fetch_object獲取它。

我怎樣才能訪問現場? $ fetched-> T1.TEXT不工作...

求助THX

UPDATE 2013:這個問題是很老,但正確的,最簡單的方式就是給每一個領域的別名select語句,所以它們是唯一的。示例:

SELECT T1.TEXT AS MYTEXT, T2.FIELD AS MYFIELD FROM TABLE1 T1, TABLE2 T2 WHERE T1.ID = T2.ID 

PHP:

mysql_connect('host','user','pass'); 
mysql_select_db('mydb'); 
$resource = mysql_query(/* the query again */); 
$firstrow = mysql_fetch_object($resource); 
$text = $firstrow->MYTEXT; 
$field = $firstrow->MYFIELD; 
+1

嘗試$ fetched-> TEXT – cristian 2011-01-09 21:22:54

+1

我認爲它不會工作,因爲如果我選擇T1.TEXT和T2.TEXT,這將不起作用。 – 2011-01-09 21:24:01

+1

爲什麼不給你的字段添加一個別名,例如`SELECT T1.TEXT as t1_text,T2.FIELD as t2_field FROM TABLE1 T1,TABLE2 T2 WHERE T1.ID = T2.ID`,然後嘗試$ fetched-> t1_text或$ fetched - > t2_field – cristian 2011-01-09 21:28:15

回答

2

看看這個


mysql_connect("hostname", "user", "password"); 
mysql_select_db("mydb"); 
$result = mysql_query("select user_id,fullname from mytable"); 
while ($row = mysql_fetch_object($result)) { 
    echo $row->user_id; 
    echo $row->fullname; 
} 
mysql_free_result($result); 

更多in php manual about mysql-fetch-object

1

你可以看到什麼領域是你的目的是通過這樣做:

var_dump($fetched); 

你可能會看到現場$ fetched->文本。

(假設你使用PHP)

0

試試這個 - >

$fetched->{T1.TEXT}