2011-01-09 26 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}